我的windows应用程序中有datagridview。默认情况下,datagridview加载1行。如果我们在单元格中键入内容,则会在此行下方创建另一行。它继续这样下去。现在,如果有人输入内容然后将其删除,则下面创建的行不会被删除。我想阻止用户创建无限制的no。没有任何数据的行。是否可以限制datagridview创建最多2个这样的空白行?请建议,如何做到。
答案 0 :(得分:0)
设置属性AllowUserTAddRows=false;
或代码
myDataGridView.AllowUserToAddRows = false;
答案 1 :(得分:0)
无法自动实现。您需要手动执行此操作。最好的方法是正确处理cellvalidating和cellvalidated事件。如果单元格为空,则取消事件。您还可以设置属性 AllowUserToAddRows = false 并手动添加新行,例如按下按钮:
// source is IBindingSource
MyObject newObject = this.source.AddNew();
DataGridViewRow row = this.dgv.Rows[this.source.IndexOf(newObject)];
row.Selected = true;
int maxSelectedOrder = this.source.IndexOf(newObject );
int minSelectedOrder = this.source.IndexOf(newObject );
int displayedRows = this.dgv.Rows.GetRowCount(DataGridViewElementStates.Displayed);
int firstDisplayed = this.dgv.FirstDisplayedScrollingRowIndex;
int lastDisplayed = displayedRows + firstDisplayed - 1;
if (maxSelectedOrder - 1 > lastDisplayed && minSelectedOrder - 1 > firstDisplayed)
{
int firstToDisplay = displayedRows + firstDisplayed - 1 - (displayedRows - 1);
if (firstToDisplay > 0)
{
this.dgv.FirstDisplayedScrollingRowIndex = firstToDisplay;
}
}
this.dgv.CurrentCell = row.Cells[0];
this.dgv.Focus();