c# - 在 DataGridView 中编辑单元格后,我应该在哪个事件之后执行操作?

标签 c# .net vb.net winforms events

我在窗体上有一个 WinForms DataGridView 控件。此 DataGridControl 中有两个字段:

  • 电子邮件地址
  • Resolved Email Address(根据Email Address中的输入计算)

用户在 Email Address 中输入或更改值后,我希望 Resolved Email Address 中的值基于单独的方法更新。我应该绑定(bind)什么事件,以便在更新 Email Address 单元格后更新 Resolved Email Address 单元格?

我不确定将事件放在哪里,因为用户可以在添加/更改值后做很多事情:跳到下一个单元格,单击表单上的取消,单击表单上的确定等。任何想法?

最佳答案

与您尝试执行的操作相关的事件顺序是:

  • 1) 单元格验证

  • 2) CellValueChanged

  • 3) 细胞验证

  • 4) CellEndEdit

如果你想阻止基于单元格内容的进一步操作,我建议使用 CellValidating,因为在 CellValidating 中,你可以设置 e.将 DataGridViewCellValidatingEventArgs 中包含的 标志取消为 true,这将自动将控制返回给该单元格。

如果您只想更新显示(已解析的电子邮件名称),请使用 CellValueChanged


private void myDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    e.Cancel = (!validateMyInput(e.FormattedValue.ToString());
}

关于c# - 在 DataGridView 中编辑单元格后,我应该在哪个事件之后执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2508696/

相关文章:

c# - 玩家到体素碰撞检测/响应

c# - HttpClient在某些情况下修改BaseAddress

.net - 如何从 Windows 窗体应用程序打开记事本并在其中放置一些文本?

c# - 为什么在 C# 中捕获并重新抛出异常?

c# - .NET Core (C#) 中的 AES-256-CBC

.net - 如何为自定义异常处理程序显示标准 Windows 错误图标?

c# - Visual Studio - Windows 8.1 或更低版本用户的 .NET Framework 4.6.1 问题

mysql - 如何修复 vb.net 中的数据库连接?

c# - RestSharp 与 WebRequest 相比的性能问题

c# - 图表动态创建。在 .net 中,C#