【发布时间】:2011-04-21 20:39:55
【问题描述】:
我很难相信以前没有人问过这个问题,但它看起来不像以前那样,而且我的 Google 搜索都是徒劳的。
我可以设置 DataGridView 允许用户添加的最大行数吗? (就像添加第 10 行后,它不会再显示“新行”行?)。
【问题讨论】:
标签: c# winforms datagridview
我很难相信以前没有人问过这个问题,但它看起来不像以前那样,而且我的 Google 搜索都是徒劳的。
我可以设置 DataGridView 允许用户添加的最大行数吗? (就像添加第 10 行后,它不会再显示“新行”行?)。
【问题讨论】:
标签: c# winforms datagridview
没有直接的属性可以做到这一点,但您应该能够使用AllowUserToAddRows 属性和UserAddedRow 事件的组合轻松完成此操作。
一般的思路是添加一个事件处理程序来对照Maximum Allowed检查行数,然后设置AllowUserToAddRows = false
public partial class frmGridWithRowLimit : Form
{
public Int32 MaxRows { get; set; }
public frmGridWithRowLimit()
{
MaxRows = 10;
InitializeComponent();
dgRowLimit.UserAddedRow += dgRowLimit_RowCountChanged;
dgRowLimit.UserDeletedRow += dgRowLimit_RowCountChanged;
}
private void dgRowLimit_RowCountChanged(object sender, EventArgs e)
{
CheckRowCount();
}
private void CheckRowCount()
{
if (dgRowLimit.Rows != null && dgRowLimit.Rows.Count > MaxRows)
{
dgRowLimit.AllowUserToAddRows = false;
}
else if (!dgRowLimit.AllowUserToAddRows)
{
dgRowLimit.AllowUserToAddRows = true;
}
}
}
您还需要处理用户删除行的情况,以确保您允许他们再次添加行。
希望对你有帮助
干杯, 乔什
【讨论】: