c# - 从单元格中托管的控件退出编辑模式

标签 c# .net winforms datagridview editmode

我有一个自定义的 datagridviewcolumn,一个托管在单元格中的自定义控件。我想以编程方式退出编辑模式并验证单元格中的当前值(此值正确)。我检查了以下方法但没有成功:

this.datagridview.currentCell.datagridview.endEdit()
this.EditingControlDataGridView.endEdit()
this.datagridview.endEdit();

也可以强制改变当前单元格:

this.datagridview.currentCell = this.datagridview.Rows[rowIndex].Cells[columnIndex]

我需要以编程方式强制提交单元格中的待定值,因为例如,在某些情况下我需要删除一行 datagridview 但由于单元格(在同一行中被删除)处于编辑模式,我如果我之前不提交对单元格的更改并退出编辑模式,则无法执行此操作。

此外,当我想退出编辑模式时,我也有类似的奇怪行为,但在这种情况下,我放弃了单元格中的更改:根据我的应用程序的状态,有时执行 this.datagridview.CancelEdit() 有效,有时不是。

使用 C#、.NET Framework 4.0、WinForms。

最佳答案

添加这段代码

Application.DoEvents();

强制触发事件:

关于c# - 从单元格中托管的控件退出编辑模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261895/

相关文章:

.net - C# 异步。套接字编程

c# - 尽管将 Visibility 设置为 Hidden 并将 WindowState 设置为 Minimized,WPF Window 仍然显示为可最大化的矩形

c# - 如何使 ComboBox 下拉列表调整自身大小以适应最大的项目?

c# - 每次按下回车键时如何防止突出显示datagridview中的下一行?

c# - 防止文本框中的闪烁光标

C# 代码无法连接到 Azure SQL 数据库

.net - 为 Windows 窗体应用程序选择字体

c# - 自动指示 ToolTipStatusLabel 中的截断

c# - 有没有办法在 C# 中获取两组对象之间的差异

c# - 如何将组合框选择的项目转换为字符串