我必須添加未知數量的按鈕到WPF中的窗體(它實際上是一個工具箱,其元素被動態加載)。我正在尋找一種方法來爲所有這些實例創建一個事件處理程序。這可能嗎?它們不完全只是按鈕,它是繼承Button類和其他一些成員變量的類。我能否在每個實例的這種事件處理程序中訪問這些變量。如果它有幫助或者有某種相關性,我不得不說我不知道C#中的代表是什麼。C# - 爲類的所有實例添加事件處理程序
很多謝謝
我必須添加未知數量的按鈕到WPF中的窗體(它實際上是一個工具箱,其元素被動態加載)。我正在尋找一種方法來爲所有這些實例創建一個事件處理程序。這可能嗎?它們不完全只是按鈕,它是繼承Button類和其他一些成員變量的類。我能否在每個實例的這種事件處理程序中訪問這些變量。如果它有幫助或者有某種相關性,我不得不說我不知道C#中的代表是什麼。C# - 爲類的所有實例添加事件處理程序
很多謝謝
我是多麼愚蠢的回答自己的問題。我想到了這樣的情況:我可以在類中爲所有實例添加事件處理程序。咄!這裏是代碼:
public class Tool_Button:Button{
public String tool_name;
public Tool_Button(String toolname) {
this.Width = 32;
this.Height = 32;
this.BorderBrush = Brushes.Gray;
tool_name = toolname;
this.Background = new ImageBrush(new BitmapImage(new Uri(tool_name)));
this.Click += new RoutedEventHandler(Tool_Button_Click);
}
void Tool_Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(tool_name);
}
}
您可以將同一事件處理程序附加到許多事件。
例如:
var handler = new MyEventHandler(MyMethod);
obj1.MyEvent += handler;
obj2.MyEvent += handler;
obj3.MyEvent += handler;
你可以實現一個類工廠類都實例化和配置每個按鈕實例(在你的情況下添加事件處理協會),你需要他們。這將允許您在一個地方編寫配置代碼,並確保每次都按照正確的設置實例化按鈕。
是的,你應該能夠訪問派生按鈕類的自定義屬性,假設方法/屬性是公共的。事件處理程序的方法簽名很可能包括Handler(object sender, EventArgs e)
,在這種情況下,您可以將發件人轉換爲派生按鈕的類型。
謝謝。我需要這個。 – Auxiliary 2010-08-28 19:51:09
或者你可以重寫'OnClick'。 – 2016-06-27 15:54:56