【问题标题】:How to add icons to TreeView control in c# using OnPaint args如何使用 OnPaint args 在 c# 中将图标添加到 TreeView 控件
【发布时间】:2011-08-31 05:26:26
【问题描述】:

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

【问题讨论】:

  • OnPaint 事件不是你调用的,系统调用它,如果你有一个处理程序,你可以在其中指定你想要做什么。
  • 我很好奇。图片列表有什么问题?

标签: c# treeview onpaint


【解决方案1】:

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

看看这个例子。

DrawNode event

【讨论】:

  • 没那么吓人,事实上Windows中到处都有很多Owner Drawing。它只需要妥善处理:)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    相关资源
    最近更新 更多