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