private void TreePrePaintItem(object sender, PaintTreeItemEventArgs args) { if ((_dropHighlightNode != null) && (_dropLinePosition == DropLinePosition.OnNode)) { if (args.Node.Equals(_dropHighlightNode)) { args.BackColor = _dropHighlightBackColor; args.ForeColor = _dropHighlightForeColor; } } }
private void TreePostPaintItem(object sender, PaintTreeItemEventArgs args) { if ((_dropHighlightNode != null) && (_dropHighlightNode == args.Node) && (_dropLinePosition != DropLinePosition.None)) { using (System.Drawing.Pen pen = new System.Drawing.Pen(_dropLineColor, _dropLineWidth)) { int leftEdge = args.Node.Bounds.Left - 4; if (args.Node.ImageIndex >= 0) { leftEdge -= 20; } System.Windows.Forms.TreeView tree = args.Node.TreeView; int rightEdge = tree.DisplayRectangle.Right - 4; int lineVPosition; if ((_dropLinePosition & DropLinePosition.AboveNode) == DropLinePosition.AboveNode) { lineVPosition = _dropHighlightNode.Bounds.Top; args.Graphics.DrawLine(pen, leftEdge, lineVPosition, rightEdge, lineVPosition); pen.Width = 1; args.Graphics.DrawLine(pen, leftEdge, lineVPosition - 3, leftEdge, lineVPosition + 2); args.Graphics.DrawLine(pen, leftEdge + 1, lineVPosition - 2, leftEdge + 1, lineVPosition + 1); args.Graphics.DrawLine(pen, rightEdge, lineVPosition - 3, rightEdge, lineVPosition + 2); args.Graphics.DrawLine(pen, rightEdge - 1, lineVPosition - 2, rightEdge - 1, lineVPosition + 1); } if ((_dropLinePosition & DropLinePosition.BelowNode) == DropLinePosition.BelowNode) { lineVPosition = _dropHighlightNode.Bounds.Bottom; args.Graphics.DrawLine(pen, leftEdge, lineVPosition, rightEdge, lineVPosition); pen.Width = 1; args.Graphics.DrawLine(pen, leftEdge, lineVPosition - 3, leftEdge, lineVPosition + 2); args.Graphics.DrawLine(pen, leftEdge + 1, lineVPosition - 2, leftEdge + 1, lineVPosition + 1); args.Graphics.DrawLine(pen, rightEdge, lineVPosition - 3, rightEdge, lineVPosition + 2); args.Graphics.DrawLine(pen, rightEdge - 1, lineVPosition - 2, rightEdge - 1, lineVPosition + 1); } } } }