使用TreeView中的加号和减号图标

时间:2013-12-19 15:37:23

标签: c# winforms

我正在编写一个用户可以扩展和收缩的自定义控件。为了获得最直观的用户体验,我想使用之前用户可能遇到的plusminus图标。它们可用于TreeView控件,因此理论上我应该可以直接访问它们以供我控制。我只是不确定如何。

1 个答案:

答案 0 :(得分:4)

您可以尝试使用VisualStyle classes

using System.Windows.Forms.VisualStyles;

protected override void OnPaint(PaintEventArgs e) {
  VisualStyleRenderer treeClose = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Closed);
  treeClose.DrawBackground(e.Graphics, new Rectangle(16, 16, 16, 16));
  TextRenderer.DrawText(e.Graphics, "Closed Branch", SystemFonts.DefaultFont, new Point(32, 16), Color.Black);

  VisualStyleRenderer treeOpen = new VisualStyleRenderer(VisualStyleElement.TreeView.Glyph.Opened);
  treeOpen.DrawBackground(e.Graphics, new Rectangle(16, 32, 16, 16));
  TextRenderer.DrawText(e.Graphics, "Opened Branch", SystemFonts.DefaultFont, new Point(32,32), Color.Black);

  base.OnPaint(e);
}

enter image description here

如果您的应用程序不支持VisualStyles,则必须自己手动绘制它们,这不是太难。一个矩形加一条或两条中间的线。