如何在c#中使用OnPaint参数为TreeView控件添加图标

本文关键字:参数 TreeView 控件 图标 添加 OnPaint | 更新日期: 2023-09-27 18:06:59

如何添加图标到TreeView控件在c#没有ImageList控件?我认为你需要调用OnPaint事件参数,但不知道怎么做。

如何在c#中使用OnPaint参数为TreeView控件添加图标

你必须编写OwnerDraw控件。除非您没有非常严重的原因,否则请避免这样做,因为如果您想以一种好的方式进行操作,这会导致非常复杂的情况。

看一下这个例子。

DrawNode事件

可以覆盖"OnDrawNode()",设置"DrawMode"为"TreeViewDrawMode.OwnerDrawAll"。然而,您很快就会意识到,模拟默认树视图的确切行为几乎是不可能的。有些状态是由控件私有的,如果不进行大量的操作,你就无法访问。

例如,在标准的树视图控件上,在节点上按下鼠标按钮而不释放它,将显示该节点在被树视图控件注册为选中之前已被选中。试图模仿使用所有者绘制节点是非常困难的,基本上需要你重新实现整个东西。

有很多关于如何做TreeView的节点所有者绘制的例子:

c#: TreeView owner drawing with ownerdrawtext和当点击节点时奇怪的黑色高亮

选择

时TreeView所有者绘制故障http://www.codeproject.com/KB/cpp/CustomDrawTreeview.aspx