private static void ApplyToButton(Button btn, Form fContext)
        {
            DialogResult dr = btn.DialogResult;

            if (dr == DialogResult.None)
            {
                return;                                     // No workaround required
            }
            object           objClickEvent;
            EventHandlerList ehl = GetEventHandlers(btn, out objClickEvent);

            if (ehl == null)
            {
                Debug.Assert(false); return;
            }
            Delegate fnClick = ehl[objClickEvent];             // May be null

            EventHandler fnOvr = new EventHandler(MonoWorkarounds.OnButtonClick);

            m_dictHandlers[btn] = new MwaHandlerInfo(fnClick, fnOvr, dr, fContext);

            btn.DialogResult = DialogResult.None;
            if (fnClick != null)
            {
                ehl.RemoveHandler(objClickEvent, fnClick);
            }
            ehl[objClickEvent] = fnOvr;
        }
Example #2
0
        private static void ApplyToButton(Button btn, Form fContext)
        {
            DialogResult dr = btn.DialogResult;
            if(dr == DialogResult.None) return; // No workaround required

            object objClickEvent;
            EventHandlerList ehl = GetEventHandlers(btn, out objClickEvent);
            if(ehl == null) { Debug.Assert(false); return; }
            Delegate fnClick = ehl[objClickEvent]; // May be null

            EventHandler fnOvr = new EventHandler(MonoWorkarounds.OnButtonClick);
            m_dictHandlers[btn] = new MwaHandlerInfo(fnClick, fnOvr, dr, fContext);

            btn.DialogResult = DialogResult.None;
            if(fnClick != null) ehl.RemoveHandler(objClickEvent, fnClick);
            ehl[objClickEvent] = fnOvr;
        }