如何"敲定"新行

Har*_*eth 9 .net c# datagridview winforms

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

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

我试过dataGridView.EndEdit(),dataGridView.CurrentRow.DataGridView.EndEdit(),bindingSource.EndEdit(),和这些没有一个真正做的伎俩.(另外,使用dataGridView.BeginEdit()将文本框放入editmode,这不方便,因为我似乎无法以编程方式编辑单元格)

理想情况下,我希望能够继续在新行上输入,同时使用自定义控件更改其值,并在下方显示新行.

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

Har*_*eth 8

好的,所以我想到了如何使这项工作.使用我的自定义控件修改值时,我不得不使用

bindingSource.EndEdit();
dataGridView.NotifyCurrentCellDirty(true);
dataGridView.EndEdit();
dataGridView.NotifyCurrentCellDirty(false);
Run Code Online (Sandbox Code Playgroud)

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

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