11

所以今晚我的 c# windows 窗体应用程序遇到了一些麻烦。当当前选定的新行仍为其默认值时,是否可以向 datagridview 插入新行?或者,如果我想以编程方式更改值,如何模拟用户编辑文本框以完成行?

澄清一下,当一行是新行(并且isNewRow属性显示为真)时,我无法弄清楚如何改变isNewRow = true状态以在下面生成一个新的空行。

我已经尝试过dataGridView.EndEdit(), dataGridView.CurrentRow.DataGridView.EndEdit(), bindingSource.EndEdit(),但这些都没有真正做到这一点。(另外,使用dataGridView.BeginEdit()将文本框放入editmode,这并不方便,因为在那之后我似乎无法以编程方式编辑单元格)

理想情况下,我希望能够继续在新行上按回车键,同时使用自定义控件更改它们的值,或者不使用自定义控件,并在下方显示一个新行。

有没有人对此有任何解决方案?

4

1 回答 1

12

好的,所以我想出了如何使这项工作。使用自定义控件修改值时,我必须使用

bindingSource.EndEdit();
dataGridView.NotifyCurrentCellDirty(true);
dataGridView.EndEdit();
dataGridView.NotifyCurrentCellDirty(false);

因此,每当对新行进行更改时,它都会强制提交该行并在 datagridview 的末尾添加一个新的空白行空间。

但是,我不必使用 Validate()。

于 2013-05-29T18:32:59.043 回答