浏览/迭代UI事件。

| 在C#应用程序中,我们可以添加事件处理程序,例如
this.button3.Click += new System.EventHandler(this.button3_Click);
,也可以删除
this.button3.Click -= new System.EventHandler(this.button3_Click);
,因此这意味着我们可以在UI控件中添加任意数量的事件,因此我的问题是如何探索或迭代并删除一个UI中的特定事件。 例如。如果我们能以某种方式在列表框上填充控件的所有事件(如果可能的话),然后删除选定的控件。 PS:我有点初级程序员,所以我认为代码反射可以处理这一部分。 最好的     
已邀请:
        您可以使用以下代码轻松显示组件可能发生的所有事件的列表
EventInfo[] allEvents = Button1.GetType().GetEvents(System.Reflection.BindingFlags.Instance
    | System.Reflection.BindingFlags.Public);
foreach (EventInfo curEvent in allEvents)
{
    EventsListBox.Items.Add(curEvent.Name);
}
但是,似乎不可能知道将哪些方法分配给委托,如果发生事件,将在组件外部调用这些方法。您可以参考《如何确定特定的委托是否已经分配给事件?》,确定绑定到事件的事件处理程序列表以及通过事件处理程序进行迭代     

要回复问题请先登录注册