C# 获取对控件执行的事件
我希望得到一些帮助 在我的应用程序中,我有一个文本框,在单击任何控件时,该文本框应显示该控件中发生的事件 对于exmaple,如果我单击应用程序中的按钮或复选框,文本框应标识事件并显示为button1.clicked,checkbox1.checked之类的内容 谁能帮我完成这件事C# 获取对控件执行的事件,c#,winforms,event-handling,C#,Winforms,Event Handling,我希望得到一些帮助 在我的应用程序中,我有一个文本框,在单击任何控件时,该文本框应显示该控件中发生的事件 对于exmaple,如果我单击应用程序中的按钮或复选框,文本框应标识事件并显示为button1.clicked,checkbox1.checked之类的内容 谁能帮我完成这件事 提前感谢。:如果您想为所有控件动态执行此操作,您可以在控件树中导航,并为如下所示的事件订阅相同的事件处理程序,如果设置了预定义控件,基本上只需为相同的偶数处理程序订阅所有控件即可 预定义控件集 checkBox1.C
提前感谢。:如果您想为所有控件动态执行此操作,您可以在控件树中导航,并为如下所示的事件订阅相同的事件处理程序,如果设置了预定义控件,基本上只需为相同的偶数处理程序订阅所有控件即可 预定义控件集
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下吗?难道你不能在按钮点击事件处理程序中设置文本框文本吗?这就是你要找的吗