2010-11-11 74 views
0

我在silverlight/c#中編寫的應用程序由13個永久性按鈕組成,這些按鈕在單擊時執行到另一個頁面的簡單導航。在.NET中爲多個按鈕設置單個事件處理程序?

問題是我的代碼背後有13個不同的事件處理程序(很多代碼)幾乎相同的目的。

有沒有辦法檢測哪個按鈕被按下,以便單個事件處理程序被觸發,並且一個簡單的if語句可以確定要去哪個頁面?

回答

4

是的:您可以對所有按鈕使用相同的方法,並使用參數「sender」作爲「sender.Name」來獲取按下按鈕的名稱。

1

測試按鈕單擊事件處理程序的sender參數 - 您將能夠測試哪個按鈕是發件人。

0

使用'發件人'作爲密鑰的字典。 '價值'可能是導航到的頁面。

2

在您的程序的設計器代碼中,爲所有13個按鈕添加相同的事件處理程序(查找具有+ =的代碼併爲它們放置相同的事件處理程序)。

請注意,事件處理程序有一個對象參數。可以按如下方式使用此參數:

if(s.Name = "Button1") {//button 1 stuff} 

else if (s.Name = "Button2") {button 2 stuff} 

等。

編輯:本來應該s.Name = 「Button1的,2,3,等等。」

0

如果你有很多的代碼在你的事件處理程序中,你應該將其分解爲一個單獨的方法,並將按鈕的特定參數發送給該方法。

但是,如果您查看發件人參數,您仍然可以擁有一個事件處理程序。

相關問題