永远不会调用自定义TreeView OnDrawNode

时间:2009-09-04 18:16:18

标签: .net winforms treeview

我在.NET中创建了一个自定义树视图控件来显示目录。

我想要的是节点显示文件夹名称以及上次修改的日期。

我可以通过设置文本来包含它来实现这一点,但是当我尝试使用完整路径获取子节点时,它还包括日期,因此找不到该文件夹​​。

所以我尝试重写OnDrawNode以显示日期,因为它存储在节点的tag属性中。但是,当我运行应用程序时,它永远不会被调用。

这有什么理由吗?

1 个答案:

答案 0 :(得分:3)

您必须将DrawMode属性设置为OwnerDrawAllOwnerDrawText。否则,系统将绘制节点,并且不会调用OnDrawNode


更新:要将默认渲染与自定义渲染结合起来,您可以这样做:

    protected override void OnDrawNode(DrawTreeNodeEventArgs e)
    {
        e.DrawDefault = true;
        base.OnDrawNode(e);
        // your custom rendering here
    }