2012-11-05 133 views
1
new System.Windows.Forms.MouseEventHandler(this.eventFunction) 

上面發送'object sender'和'MouseEventArgs e'給我的事件函數。我需要發送另一個對象,但如果我使用:創建自定義事件處理程序需要幫助

System.Windows.Forms.MouseEventHandler(this.eventFunction(object, MouseEventArgs, objectINeed)); 

它不起作用。它只是說有一個無效的論點。即使我公然向它發送一個對象MouseEventArgs對象。

任何人都可以提供任何見解嗎?

+0

你想傳遞什麼對象? –

+0

http://www.switchonthecode.com/tutorials/csharp-snippet-tutorial-custom-event-handlers –

+0

但是,我認爲你應該能夠從'MouseEventArgs'或'EventArgs'繼承並創建你自己的。 – IAbstract

回答

0

不會導致對象發送者應該已經擁有需要傳遞給事件的信息。該事件附加到該對象。

您可以創建一個方法,該方法可以從事件內部調用以檢索所需的對象或數據。

或者您可能會讓您需要的對象的範圍過高,以致它已經可用於事件。

+0

我想過這樣做。我將不得不用類的範圍創建一個對象,因爲我想發送的對象是動態創建的,並且只具有我從中調用它的特定方法的範圍。我只是想避免它,因爲在任何給定的時間可以有多個,所以我將不得不稍微改變實現。我可以以某種方式訪問​​它,因爲當我離開該方法時它仍然存在。我只是想看看是否有一種我錯過的方式,可以讓我把它與事件一起發送。 – user1427105

0

你可以這樣做:

new System.Windows.Forms.MouseEventHandler((s, e) => this.eventFunction(objectINeed, e)); 

但是,爲什麼你需要嗎?