获取在控件上执行的事件



我希望得到一些帮助。

在我的应用程序中,我有一个文本框,它应该显示在单击任何控件时发生的事件。

例如,如果我点击应用程序中的按钮或复选框,文本框应该识别事件并显示为button1。点击,checkbox1。检查过的东西

谁能帮我把这件事做完吗?

如果你想动态地为所有控件做这件事,你可以浏览控件树并为下面所示的事件订阅相同的事件处理程序,在预定义控件设置的情况下,基本上只是为相同的偶数处理程序订阅所有控件。

预定义控件集

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);
}

相关内容

  • 没有找到相关文章

最新更新