因此,今晚我的C#Windows Forms应用程序遇到了一些麻烦。当前选择的新行仍保持其默认值时,是否可以在datagridview中插入新行?或者,如果我想以编程方式更改值,如何模拟用户编辑文本框以最终确定行?
为了澄清,当一行是新行(并且使用isNewRow
属性显示为true时)时,我无法弄清楚如何更改为isNewRow = true
状态以在下面生成新的空行。
我已经尝试过dataGridView.EndEdit()
,dataGridView.CurrentRow.DataGridView.EndEdit()
,bindingSource.EndEdit()
,但是这些都没有真正做到这一点。 (同样,使用dataGridView.BeginEdit()
将文本框放入editmode
,这并不方便,因为在那之后我似乎无法以编程方式编辑单元格)
理想情况下,我希望能够继续命中新行,同时是否使用自定义控件更改其值,并在其下显示新行。
有人对此有任何解决方案吗?
最佳答案
好的,所以我想出了如何使它工作的方法。
使用自定义控件修改值时,我必须使用
bindingSource.EndEdit();
dataGridView.NotifyCurrentCellDirty(true);
dataGridView.EndEdit();
dataGridView.NotifyCurrentCellDirty(false);
因此,每当对新行进行更改时,它都会强制提交该行,并在datagridview的末尾添加一个新的空白行空间。
但是,我不必使用Validate()。
关于c# - 如何 "finalize"新行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16783511/