0

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

PS:我有点像初级程序员,所以我认为代码反射处理了这部分。最好的

4

1 回答 1

1

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

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

但是,似乎不可能知道哪些方法分配给了委托,在组件外部发生事件时将调用这些方法。您可以参考如何确定某个特定代表是否已被分配给某个活动?,确定绑定到事件的事件处理程序列表遍历事件处理程序

于 2011-05-30T15:56:56.007 回答