C#中TreeView节点的自定义绘制方法

本文实例讲述了C#中TreeView节点的自定义绘制方法。分享给大家供大家参考。具体如下:

if ((e.State & TreeNodeStates.Selected) != 0)
{
 //演示为绿底白字
 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);
 }
}

希望本文所述对大家的C#程序设计有所帮助。

你可能感兴趣的:(C#中TreeView节点的自定义绘制方法)