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

Fr3*_*dan 2 c# winforms

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

Lar*_*ech 5

您可以尝试使用VisualStyle类

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);
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

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