2011-07-26 26 views
0
var obj=new Button(); 
string eventName = "Click"; 

var evt = obj.GetType().GetEvent(eventName); 

EventHandler myCode = delegate {MessageBox.Show("asd");}; 
evt.AddEventHandler(obj, myCode); 

喜 我添加事件處理程序按鈕點擊事件的代碼 點擊事件需要2 parametr對象發件人和EventArgs的獲取事件類

我怎樣才能EventArgs的parametr在這個代碼?

回答

2

如果你的意思是 「在處理程序」,然後:

EventHandler myCode = delegate (object sender, EventArgs e) { 
     MessageBox.Show("asd");}; 

或更密集的拉姆達:

EventHandler myCode = (sender, e) => MessageBox.Show("asd"); 

如果你的意思是 「調用事件時」,用objEventArgs.Empty

+0

我使用其他反射存在我的DLL的空隙,並有喜歡 主代碼 { 大會反射 VAR OBJ =新的按鈕,我會送我paramers(); string eventName =「Click」; var evt = obj.GetType()。GetEvent(eventName); EventHandler myCode = delegate {MessageBox.Show(「asd」);}; evt.AddEventHandler(obj,myCode); here如何發送參數?也許不是EventArg KeyEventArgs } MYDLL 無效Button_Click(對象發件人,EventArgs的){ 碼 } – YardimaIhtiyaciOlan

+0

在這種情況下,我相信* *是'Delegate.CreateDeletgate'到預先存在的方法應該能夠彌補差距。 –