探索/迭代UI事件';s

本文关键字:事件 迭代 UI 探索 | 更新日期: 2023-09-27 17:58:03

在C#应用程序中,我们可以添加类似this.button3.Click += new System.EventHandler(this.button3_Click);事件处理程序,也可以删除this.button3.Click -= new System.EventHandler(this.button3_Click);,这意味着我们可以在UI控件中添加任意数量的事件,所以我的问题是如何从UI中探索或迭代并删除特定事件。例如。如果我们可以以某种方式填充ListBox上控件的所有事件(如果可能的话),并删除所选事件。

附言:我是一个初级程序员,所以我认为代码反射处理这部分。最佳

探索/迭代UI事件';s

您可以使用类似的代码轻松显示组件的所有可能事件的列表

EventInfo[] allEvents = Button1.GetType().GetEvents(System.Reflection.BindingFlags.Instance
    | System.Reflection.BindingFlags.Public);
foreach (EventInfo curEvent in allEvents)
{
    EventsListBox.Items.Add(curEvent.Name);
}

然而,似乎不可能知道哪些方法被分配给了委托,在发生事件时,这些方法将在组件之外被调用。您可以参考我如何发现某个特定的委托是否已经分配给某个事件?,确定绑定到事件的事件处理程序列表,并通过事件处理程序进行迭代