2014-01-15 181 views

回答

6

您需要將事件處理程序存儲在一個變量,讓你可以參考它以後。因爲您想從處理程序中引用處理程序,所以在初始化之前還需要聲明它。最後,你不能使用一個未初始化的變量,所以你需要首先將它初始化爲null,儘管這個空值永遠不會被讀取。

EventHandler handler = null; 
handler = (o,e)=>{ 
    Console.WriteLine("Clicked!"); 
    c.Click -= handler; 
} 
c.Click += handler; 

另一種選擇是使用命名方法而不是匿名方法。

1

如果您使用命名方法而不是匿名lambda方法,這將變得更加容易。

c.Click += MyHandler; 


void MyHandler(object sender, EventArgs e) 
{ 
    Console.WriteLine("Clicked!"); 
    ((Button)sender).Click -= MyHandler; 
} 
相關問題