【发布时间】:2009-09-04 18:16:17
【问题描述】:
我在 .NET 中创建了一个自定义树视图控件来显示目录。
我想要的是让节点显示文件夹名称以及最后修改的日期。
我可以通过将文本设置为包含它来做到这一点,但是当我尝试使用完整路径获取子节点时,它还包含日期,因此找不到文件夹。
所以我尝试覆盖 OnDrawNode 以显示日期,因为它存储在节点的 tag 属性中。但是,当我运行该应用程序时,它永远不会被调用。
这有什么原因吗?
【问题讨论】:
我在 .NET 中创建了一个自定义树视图控件来显示目录。
我想要的是让节点显示文件夹名称以及最后修改的日期。
我可以通过将文本设置为包含它来做到这一点,但是当我尝试使用完整路径获取子节点时,它还包含日期,因此找不到文件夹。
所以我尝试覆盖 OnDrawNode 以显示日期,因为它存储在节点的 tag 属性中。但是,当我运行该应用程序时,它永远不会被调用。
这有什么原因吗?
【问题讨论】:
您必须将DrawMode 属性设置为OwnerDrawAll 或OwnerDrawText。否则系统会绘制节点,不会调用OnDrawNode
更新:要将默认渲染与您的自定义渲染结合起来,您可以这样做:
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
{
e.DrawDefault = true;
base.OnDrawNode(e);
// your custom rendering here
}
【讨论】: