0
我希望得到一些幫助。獲取控件上執行的事件
在我的應用程序中,我有一個文本框,它應該在點擊任何控件時顯示發生的事件。
例如,如果我點擊應用程序中的按鈕或複選框,文本框應該標識事件並顯示爲button1.clicked,checkbox1.checked類型的東西。
任何人都可以幫助我完成這件事。
在此先感謝。:)
我希望得到一些幫助。獲取控件上執行的事件
在我的應用程序中,我有一個文本框,它應該在點擊任何控件時顯示發生的事件。
例如,如果我點擊應用程序中的按鈕或複選框,文本框應該標識事件並顯示爲button1.clicked,checkbox1.checked類型的東西。
任何人都可以幫助我完成這件事。
在此先感謝。:)
如果你想這樣做的所有控件動態,你可以通過控制樹導航和訂閱事件相同的事件處理程序像圖所示,在基本設置預先定義的控制的情況下,只需訂閱所有這些處理程序即可。
預定義的控件設置
checkBox1.CheckedChanged += (s, e) => { /* handles Checked state changes*/ };
button1.Click += (s, e) => { /* handles button click */ };
動態
private void InitializeHooks()
{
foreach(var control in this.Controls)
{
var button = control as Button;
if (button != null)
{
button.Click += OnClick;
continue;
}
var checkBox = control as CheckBox;
if (checkBox != null)
{
checkBox.CheckedChanged += OnCheckedChanged;
}
}
}
// Button click handler
private void OnClick(object sender, EventArgs eventArgs)
{
txtOutput.Text = String.Format(
CultureInfo.CurrentCulture,
"{Control Type: {0}, Name: {1}, Event: Click",
sender.GetType().Name,
sender.Id);
}
// Checkbox Checked state changed handler
private void OnCheckedChanged(object sender, EventArgs eventArgs)
{
txtOutput.Text = String.Format(
CultureInfo.CurrentCulture,
"{Control Type: {0}, Name: {1}, Event: CheckedChanged",
sender.GetType().Name,
sender.Id);
}
到目前爲止,你已經嘗試過什麼? –
它是在WPF/WinForms下? – sll
它是在WinForm下。 – Udhay