DataGridView和CellEndEdit事件

时间:2010-01-27 14:49:48

标签: c# .net winforms datagridview

我有DataGridView,想要加入CellEndEdit事件。我已成功加入CellContentClick事件,但遇到CellEndEdit问题。

我将以下代码添加到Form1.cs文件中:

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
            dataGridView1[0, 0].Value = "Changed";
        }

使用该代码,编辑单元格时没有任何反应。还有什么我需要做的才能成功挂钩这个事件吗?我看到 CellContentClick 有一个

this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);

Form1.Designer.cs文件中的代码行,但我试图模仿CellEndEdit,并收到编译错误

  

('dataGridView1_CellEndEdit'没有重载匹配委托   'System.Windows.Forms.DataGridViewCellEventHandler')

2 个答案:

答案 0 :(得分:2)

你可以自己实现这个。

在构造函数中,您可以使用HookEvents()方法连接此类事件。

或者,在表单设计器中,单击gridview将其选中,转到属性窗口并单击黄色thunderbolt以查找事件列表。然后,向下滚动并找到CellEndEdit事件并双击它 - 这将为您连接事件。

要自己连线,它可能看起来像:

class A : Form
{
  public A()
  {
    Initialize();
    HookEvents();
  }

  private void HookEvents()
  {
    dataGridView1.CellEndEdit += dataGridView1_CellEndEdit;
  }
}

答案 1 :(得分:0)

我非常怀疑你的解决方案是否有效。

这不是您订阅的位置,而是您如何进行订阅。

Brandon,您正在声明一个EventHandler,它是负责在该事件“dataGridView1_CellEndEdit”的情况下执行您想要做的事情但您没有订阅该事件的函数。您的函数中也传递了错误的参数。

简单的解决方案是从设计器窗口订阅或通过代码执行此操作:

写入“dataGridView1.CellEndEdit + =”,然后按两次TAB按钮。这应该创建订阅事件的代码和正确的代理来处理它。