繁体   English   中英

DataGridView和CellEndEdit事件

[英]DataGridView and the CellEndEdit Event

我有一个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”不匹配)

您可以自己实现。

在构造函数中,您可以有一个HookEvents()方法来连接此类事件。

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

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

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

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

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

与如何放置订阅无关,而取决于您如何进行订阅。

布兰登,您要声明一个EventHandler,该函数负责在发生事件“ dataGridView1_CellEndEdit”的情况下要执行的操作,但您没有订阅该事件。 同样在函数中,您传递了错误的参数。

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

编写“ dataGridView1.CellEndEdit + =“,然后按两次TAB键。 这应该创建用于订阅事件的代码以及正确的委托以处理该事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM