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; } } }