으로 이벤트 처리기 제거 단추 클릭 이벤트에서 다음 코드를 사용하여 이벤트 처리기를 제거 할 수 있습니다.코드
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);
표시가 필요합니다. 실제로 찾은 답을 연결하지 않으면 좋은 답을 얻지 못할 수 있습니다. –
나는 그것이 작동하지 않는 시도했다. – YardimaIhtiyaciOlan