我有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')
答案 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按钮。这应该创建订阅事件的代码和正确的代理来处理它。