WinForm完成移除控件某個事宜的辦法。本站提示廣大學習愛好者:(WinForm完成移除控件某個事宜的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是WinForm完成移除控件某個事宜的辦法正文
本文實例講述了WinForm完成移除控件某個事宜的辦法,供年夜家參考自創一下。詳細功效代碼以下:
重要功效部門代碼以下:
/// <summary> /// 移除控件某個事宜 /// </summary> /// <param name="control">控件</param> /// <param name="eventName">須要移除的控件稱號eg:EventClick</param> public static void RemoveControlEvent(this Control control, string eventName) { FieldInfo _fl = typeof(Control).GetField(eventName, BindingFlags.Static | BindingFlags.NonPublic); if (_fl != null) { object _obj = _fl.GetValue(control); PropertyInfo _pi = control.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance); EventHandlerList _eventlist = (EventHandlerList)_pi.GetValue(control, null); if (_obj != null && _eventlist != null) _eventlist.RemoveHandler(_obj, _eventlist[_obj]); } }
應用代碼:
private void WinRemoveControlEventTest_Load(object sender, EventArgs e) { button1.RemoveControlEvent("EventClick"); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("button1_Click"); }