c# - 如何 "finalize"新行

标签 c# .net winforms datagridview

所以今晚我的 C# Windows 窗体应用程序遇到了一些麻烦。当当前选定的新行仍处于其默认值时,是否可以向 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/

相关文章:

c# - 控件的命名约定

.net - 如何使用硬件加速将 .NET 中的 Half 转换为 Single?

c# - 我怎样才能在 c# 中正确地做到这一点(压缩代码)

c# - 如何在 gtk# c# 中手动检测箭头键

c# - 什么是基类构造函数以及为什么要使用它? (附示例)

c# - 如何使用 C# 从回收站恢复文件?

c# - 使用 C# 将 Javascript 添加到 ASPX 页面

.net - .NET New Relic Agent 是否可以配置为记录我的应用程序的日志消息并捕获异常?

c# - Crystal Report 中加载报告失败

winforms - 当我使用 Application.Exit() 或 Form.Close() 时,为什么我的通知图标应用程序没有退出?