【问题标题】:Custom TreeView OnDrawNode is never called永远不会调用自定义 TreeView OnDrawNode
【发布时间】:2009-09-04 18:16:17
【问题描述】:

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

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

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

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

这有什么原因吗?

【问题讨论】:

    标签: .net winforms treeview


    【解决方案1】:

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


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

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

    【讨论】:

    • 谢谢。有没有办法绘制默认值,但也可以在节点上附加一些文本?让它看起来像默认值需要做很多工作。也许最好更改代码,以便在使用完整路径搜索之前将日期替换为空白?
    • 哎呀,我怎么错过了:(谢谢,我稍后再试试。
    猜你喜欢
    • 2012-04-18
    • 2012-08-03
    • 1970-01-01
    • 2012-10-14
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多