因此,今晚我的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/

10-13 06:00