Custom drawing method for TreeView nodes in C

  • 2020-12-22 17:45:23
  • OfStack

This article illustrates a custom drawing method for TreeView nodes in C#. Share to everybody for everybody reference. The details are as follows:


if ((e.State & TreeNodeStates.Selected) != 0)
{
 // White text on green background 
 e.Graphics.FillRectangle(Brushes.DeepSkyBlue, e.Node.Bounds);

 Font nodeFont = e.Node.NodeFont;
 if (nodeFont == null) nodeFont = ((TreeView)sender).Font;
 e.Graphics.DrawString(e.Node.Text, nodeFont, Brushes.White, Rectangle.Inflate(e.Bounds, 2, 0));
}
else
{
 e.DrawDefault = true;
}

if ((e.State & TreeNodeStates.Focused) != 0)
{
 using (Pen focusPen = new Pen(Color.Black))
 {
  focusPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
  Rectangle focusBounds = e.Node.Bounds;
  focusBounds.Size = new Size(focusBounds.Width - 1,
  focusBounds.Height - 1);
  e.Graphics.DrawRectangle(focusPen, focusBounds);
 }
}

Hopefully this article has helped you with your C# programming.


Related articles: