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;
                }
            }
        }
 protected virtual void OnTreeNodesFill(StiTreeNodesFillEventArgs e)
 {
     if (TreeNodesFill != null)
     {
         TreeNodesFill(this, e);
     }
 }
 /// <summary>
 /// Raises the TreeNodesFill event for this control.
 /// </summary>
 /// <param name="e">A StiTreeNodesFillEventArgs that contains the event data.</param>
 public void InvokeTreeNodesFill(StiTreeNodesFillEventArgs e)
 {
     OnTreeNodesFill(e);
 }