Esempio n. 1
0
 protected override void OnItemActivate(EventArgs e)
 {
     if (Control.MouseButtons == MouseButtons.Left)
     {
         Point pt = base.PointToClient(Control.MousePosition);
         DataTreeListViewItem dataTreeListViewItem = (DataTreeListViewItem)base.GetItemAt(pt.X, pt.Y);
         if (dataTreeListViewItem != null && dataTreeListViewItem.ChildrenItems.Count > 0 && !dataTreeListViewItem.IsLeaf && dataTreeListViewItem.GetPlusMinusButtonBound().Contains(pt))
         {
             return;
         }
     }
     base.OnItemActivate(e);
 }
Esempio n. 2
0
 protected override void OnMouseDown(MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         DataTreeListViewItem dataTreeListViewItem = base.GetItemAt(e.X, e.Y) as DataTreeListViewItem;
         if (dataTreeListViewItem != null && !dataTreeListViewItem.IsLeaf && dataTreeListViewItem.ChildrenItems.Count > 0 && dataTreeListViewItem.GetPlusMinusButtonBound().Contains(e.X, e.Y))
         {
             dataTreeListViewItem.IsExpanded = !dataTreeListViewItem.IsExpanded;
         }
     }
     base.OnMouseDown(e);
 }
Esempio n. 3
0
 private void DrawPlusMinusButtons()
 {
     using (Graphics graphics = base.CreateGraphics())
     {
         foreach (object obj in base.Items)
         {
             DataTreeListViewItem dataTreeListViewItem = (DataTreeListViewItem)obj;
             Rectangle            bounds = dataTreeListViewItem.Bounds;
             if (bounds.Bottom >= base.ClientRectangle.Top)
             {
                 bounds.Width = base.Columns[0].Width;
                 bounds.Intersect(base.ClientRectangle);
                 if (!dataTreeListViewItem.IsLeaf && !bounds.IsEmpty && dataTreeListViewItem.ChildrenItems.Count > 0)
                 {
                     Region clip = graphics.Clip;
                     graphics.SetClip(LayoutHelper.MirrorRectangle(bounds, this));
                     DataTreeListView.DrawPlusMinusButton(graphics, LayoutHelper.MirrorRectangle(dataTreeListViewItem.GetPlusMinusButtonBound(), this), !dataTreeListViewItem.IsExpanded);
                     graphics.Clip = clip;
                 }
                 else if (bounds.Top > base.ClientRectangle.Bottom)
                 {
                     break;
                 }
             }
         }
     }
 }