如何声明DevExpress的DXMenuItem的事件barButtonItem1_ItemClick

本文关键字:DXMenuItem 事件 ItemClick barButtonItem1 DevExpress 何声明 声明 | 更新日期: 2023-09-27 18:28:42

我在声明DXMenuItem时出错,这是我的代码:

private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
{
    ...
}
private void gridview1_MouseUp(object sender, MouseEventArgs e)
{
      ...
      // fault warning at the bottom line
      // No overload for 'barButtonItem1_ItemClick' matches delegate 'System.EventHandler'
      DXMenuItem menuItemAdd = new DXMenuItem("Add", new EventHandler(barButtonItem1_ItemClick), 3);
      ...
}

如何声明DevExpress的DXMenuItem的事件barButtonItem1_ItemClick

检查构造函数实际采用的委托类型,然后传递它。

或者完全删除new EventHandler;C#将隐式地为您创建委托。

EventHandler代表的签名为:

delegate void EventHandler(object sender, EventArgs e);

但是您的barButtonItem1_ItemClick方法有另一个签名。它使用ItemClickEventArgs类型作为e参数,而不是EventArgs。您必须使用与EventHandler委托具有相同签名的方法。类似这样的东西:

private void DXMenuItem_Click(object sender, EventArgs e)
{
    ...
}

此外,您还可以省略EventHandler构造函数,直接使用您的方法(语法糖):

DXMenuItem menuItemAdd = new DXMenuItem("Add", DXMenuItem_Click, 3);