2

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

4

3 回答 3

3

你必须编写 OwnerDraw 控件。除非您没有真正严重的原因,否则请避免这种情况,因为如果您想以一种好的方式做到这一点,这可能会变成非常复杂的情况。

看看这个例子。

绘图节点事件

于 2011-08-30T21:22:54.273 回答
2

您可以覆盖OnDrawNode()并设置DrawModeTreeViewDrawMode.OwnerDrawAll. 但是,您很快就会意识到模拟默认树视图的确切行为几乎是不可能的。有一些状态由控件私下保存,如果不进行大量摆弄,您将无法访问。

例如,在标准的树视图控件上,在节点上按下鼠标按钮而不释放它会在它被树视图控件注册为选中之前显示该节点为选中状态。试图模拟使用所有者绘制的节点非常困难,并且基本上需要您重新实现整个事情。

于 2011-08-30T21:26:26.153 回答
1

有很多关于如何进行 TreeView 的节点所有者绘图的示例:

C#:TreeView 所有者绘图与 ownerdrawtext 和单击节点时奇怪的黑色突出显示

选择时 TreeView 所有者绘制故障

http://www.codeproject.com/KB/cpp/CustomDrawTreeview.aspx

于 2011-08-30T21:23:29.417 回答