使用按钮单击事件中的以下代码可以删除事件处理程序。使用代码删除事件处理程序
Button btn = new Button();
this.Controls.Add(btn);
btn.Click += (o, x) =>
{
Button b = o as Button;
FieldInfo eventclick = typeof(Control).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
object eventValue = eventclick.GetValue(b);
PropertyInfo events = b.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance);
EventHandlerList eventHandlerList = (EventHandlerList)events.GetValue(b, null);
eventHandlerList .RemoveHandler(eventValue, eventHandlerList [eventValue]);
MessageBox.Show("Test");
};
但我想从vgridcontrols CellValueChanged事件中删除事件处理程序。我需要在以下内容中为“EventClick”撰写什么内容?
FieldInfo eventclick = typeof(Control).GetField(
"EventClick",
BindingFlags.Static | BindingFlags.NonPublic);
归属是SO所必需的。不链接你发现的答案实际上阻止你得到一个很好的答案。 –
我试过了不行 – YardimaIhtiyaciOlan