我的Windows应用程序中有datagridview . 默认情况下,datagridview加载1行 . 如果我们在单元格中键入内容,则会在此行下方创建另一行 . 它继续这样下去 . 现在,如果有人输入内容然后将其删除,则下面创建的行不会被删除 . 我想阻止用户创建无限制的no . 没有任何数据的行 . 是否可以限制datagridview创建最多2个这样的空白行?请建议,如何做到 .
它无法自动实现 . 您需要手动执行此操作 . 最好的方法是正确处理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();
设置属性 AllowUserTAddRows=false; 或通过代码
AllowUserTAddRows=false;
myDataGridView.AllowUserToAddRows = false;
2 回答
它无法自动实现 . 您需要手动执行此操作 . 最好的方法是正确处理cellvalidating和cellvalidated事件 . 如果单元格为空,则取消事件 . 您还可以设置属性AllowUserToAddRows = false并手动添加新行,例如按下按钮:
设置属性
AllowUserTAddRows=false;
或通过代码