protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            if ((e.Button & MouseButtons.Left) > 0)
            {
                if ((!LockPopupInvoke) && TreeViewBoxPopupForm == null)
                {
                    InvokeDropDown(EventArgs.Empty);
                    TreeViewBoxPopupForm             = new StiTreeViewBoxPopupForm(this);
                    TreeViewBoxPopupForm.ClosePopup += new EventHandler(OnClosePopup);

                    Rectangle rect    = this.RectangleToScreen(this.ClientRectangle);
                    int       cbWidth = DropDownWidth;
                    if (cbWidth < this.Width)
                    {
                        cbWidth = this.Width;
                    }

                    TreeViewBoxPopupForm.SetLocation(rect.Left, rect.Top + this.Height + 1, cbWidth, this.MaxDropDownHeight);

                    StiTreeNodesFillEventArgs ea = new StiTreeNodesFillEventArgs(
                        TreeViewBoxPopupForm.tvNodes.Nodes,
                        TreeViewBoxPopupForm.tvNodes);
                    InvokeTreeNodesFill(ea);
                    TreeViewBoxPopupForm.ShowPopupForm();

                    InvokeDropDown(EventArgs.Empty);
                }
                else
                {
                    LockPopupInvoke = false;
                }
            }
        }
 private void OnClosePopup(object sender, EventArgs e)
 {
     if (TreeViewBoxPopupForm != null)
     {
         InvokeDropUp(e);
         TreeViewBoxPopupForm.Dispose();
         TreeViewBoxPopupForm = null;
     }
 }