2010-06-03 281 views
2

我有一個類,我希望能夠處理網格的鼠標移動事件。將事件傳遞給構造函數

我試圖用靜態方法調用這樣創建:

MyDataBinding.BindObjectsToDataGrid(ListOfObjectsToBind, myGrid.MouseUp); 

的最終目標是,在該方法我將委託分配到鼠標鬆開

PassedInMouseUp += myMethodThatWillHandleTheMouseUp; 

看起來在這裏很好(對我來說),但編譯器在第一行中扼殺。它說我只能用+ =或者 - =來使用MouseUp。

很明顯,我正在走錯這個方向。我怎樣才能得到一個不同的類來處理鼠標了不得不出來:

  • 通行證在整個電網
  • 暴露將要處理的鼠標了作爲一個公共方法的方法。

或者,這只是一個限制,我將不得不做一個上述?

回答

1

這是不可能的,沒有反思。

與屬性一樣,.Net事件編譯爲一對訪問方法 - add_EventNameremove_EventName。沒有什麼可以作爲參數傳遞的。

+0

也許我可以做一個委託,將方法添加到事件,然後將其傳入該方法。 (稍後會被調用。)這會起作用嗎? ---(最好我會去試試看) – Vaccano 2010-06-03 22:04:32

+2

這會奏效。 'MyDataBinding.BindObjectsToDataGrid(ListOfObjectsToBind,h => myGrid.MouseUp + = h);'。該參數將是一個「Action 」。 – SLaks 2010-06-03 22:07:33