Visual C# - 将事件处理程序与CellDoubleClick事件关联

时间:2010-11-23 02:33:48

标签: c# datagridview overloading

我正在使用visual studio,并在用户双击它时尝试从DataGridView单元格获取信息。我基本上像任何其他Click事件一样设置了CellDoubleClick事件,但这似乎不起作用。

代码:

Form1.cs的

private void dataGridView1_CellDoubleClick(Object sender, DataGridViewCellEventArgs e)
    {

        System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
        messageBoxCS.AppendFormat("{0} = {1}", "ColumnIndex", e.ColumnIndex);
        messageBoxCS.AppendLine();
        messageBoxCS.AppendFormat("{0} = {1}", "RowIndex", e.RowIndex);
        messageBoxCS.AppendLine();
        MessageBox.Show(messageBoxCS.ToString(), "CellDoubleClick Event");
    }

Form1.Designer.cs中的相关代码

this.dataGridView1.CellDoubleClick += new System.EventHandler(this.dataGridView1_CellDoubleClick);

我在Form1.Designer代码中收到一条错误,指出“'dataGridView1_CellDoubleClick'没有重载与委托'System.EventHandler'匹配。

如何让双击才能正常工作? 感谢。

1 个答案:

答案 0 :(得分:2)

CellDoubleClick事件是DataGridViewCellEventHandler,而不是 EventHandler`。

您应该使用设计器添加事件句柄,它将自动使用正确的委托类型 您不应手动编辑设计器生成的代码。

通常,在添加事件处理程序时,不应显式创建委托 相反,你可以写

myGrid.CellDoubleClick += MyGrid_CellDoubleClick;