Exemple #1
0
 protected override void OnClosed(EventArgs e)
 {
     if (_mouseFilter != null)
     {
         Application.RemoveMessageFilter(_mouseFilter);
         _mouseFilter = null;
     }
     base.OnClosed(e);
     _owner.OnClosed();
 }
Exemple #2
0
        public CodeCompleteWindow(ICodeCompleteWindowOwner owner, CodeCompleteContext context)
        {
            System.Diagnostics.Debug.Assert(owner != null && owner.MasterForm != null);

            _owner               = owner;
            _context             = context;
            this.Owner           = _owner.MasterForm;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.ShowInTaskbar   = false;
            this.StartPosition   = FormStartPosition.Manual;

            _list = new NonFocusingListBox(this);
            // set up owner draw:
            _list.DrawMode     = DrawMode.OwnerDrawVariable;
            _list.DrawItem    += _list_DrawItem;
            _list.FontChanged += _list_FontChanged;
            //
            foreach (var item in _context.SyntaxItems)
            {
                _list.Items.Add(item);
            }

            _list.Dock                  = DockStyle.Fill;
            _list.SelectionMode         = SelectionMode.One;
            _list.SelectedIndexChanged += _list_SelectedIndexChanged;
            //
            this.Controls.Add(_list);

            this.Owner.Deactivate         += (ss, ee) => this.Close();
            this.Owner.Move               += (ss, ee) => this.Close();
            owner.EditorControl.LostFocus += (ss, ee) => this.Close();
            owner.EditorControl.MouseDown += (ss, ee) => this.Close();
            // close on mouse down in e.g. ribbon etc:
            _mouseFilter = new MouseDownFilter();
            _mouseFilter.MouseClicked += mouseFilter_MouseClicked;
            Application.AddMessageFilter(_mouseFilter);
        }