AutocompleteMenuNS.AutocompleteMenu.SubscribeForm C# (CSharp) Method

SubscribeForm() private method

private SubscribeForm ( ITextBoxWrapper wrapper ) : void
wrapper ITextBoxWrapper
return void
        private void SubscribeForm(ITextBoxWrapper wrapper)
        {
            if (wrapper == null) return;
            var form = wrapper.TargetControl.FindForm();
            if (form == null) return;
            if (myForm != null)
            {
                if (myForm == form)
                    return;
                UnsubscribeForm(wrapper);
            }

            myForm = form;

            form.LocationChanged += form_LocationChanged;
            form.ResizeBegin += form_LocationChanged;
            form.FormClosing += form_FormClosing;
            form.LostFocus += form_LocationChanged;
        }

Usage Example

 public void SetAutocompleteMenu(Control control, AutocompleteMenu menu)
 {
     if (menu != null)
     {
         var wrapper = menu.CreateWrapper(control);
         if (wrapper == null)
         {
             return;
         }
         //
         menu.SubscribeForm(wrapper);
         AutocompleteMenuByControls[control] = this;
         //
         wrapper.LostFocus += menu.control_LostFocus;
         wrapper.Scroll    += menu.control_Scroll;
         wrapper.KeyDown   += menu.control_KeyDown;
         wrapper.MouseDown += menu.control_MouseDown;
     }
     else
     {
         AutocompleteMenuByControls.TryGetValue(control, out menu);
         AutocompleteMenuByControls.Remove(control);
         ITextBoxWrapper wrapper = null;
         WrapperByControls.TryGetValue(control, out wrapper);
         WrapperByControls.Remove(control);
         if (wrapper != null && menu != null)
         {
             wrapper.LostFocus -= menu.control_LostFocus;
             wrapper.Scroll    -= menu.control_Scroll;
             wrapper.KeyDown   -= menu.control_KeyDown;
             wrapper.MouseDown -= menu.control_MouseDown;
         }
     }
 }
All Usage Examples Of AutocompleteMenuNS.AutocompleteMenu::SubscribeForm