Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AutocompleteMenuHost"/> class.
        /// </summary>
        /// <param name="menu">The menu.</param>
        public AutocompleteMenuHost(ZeroitAutocompleteMenu menu)
        {
            AutoClose = false;
            AutoSize  = false;
            Margin    = Padding.Empty;
            Padding   = Padding.Empty;

            Menu     = menu;
            ListView = new AutocompleteListView();
        }
 /// <summary>
 /// Sets the autocomplete menu.
 /// </summary>
 /// <param name="control">The control.</param>
 /// <param name="menu">The menu.</param>
 public void SetAutocompleteMenu(Control control, ZeroitAutocompleteMenu menu)
 {
     if (menu != null)
     {
         if (WrapperByControls.ContainsKey(control))
         {
             return;
         }
         var wrapper = menu.CreateWrapper(control);
         if (wrapper == null)
         {
             return;
         }
         //
         if (control.IsHandleCreated)
         {
             menu.SubscribeForm(wrapper);
         }
         else
         {
             control.HandleCreated += (o, e) => 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;
         }
     }
 }