2016-01-02 51 views
0

我宣佈DXMenuItem時得到一個錯誤,這裏是我的代碼:如何聲明事件barButtonItem1_ItemClick DevExpress的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); 
     ... 
} 
+0

您發佈的讓人很沒有意義。不知道你在做什麼,試圖創建一個控件的實例。 – Rahul

回答

0

檢查其委託類型的構造其實需要,並傳遞代替。

或者完全刪除new EventHandler; C#將隱式地爲您創建委託。

0

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);