3

我正在使用 .NET 2010 中的 WinForms。我创建了一个从 Treeview 继承的用户控件,并且我正在为我的树节点的文本部分使用所有者绘图。

现在我不得不解决一个奇怪的性能问题:

当树节点(我称之为“父节点”)的文本发生更改时,树视图控件会为“父节点”的每个子节点触发 DrawNode 事件,无论它们是否可见!!!

这给我的应用程序带来了很大的性能问题。如何防止树视图控件为每个子节点触发 DrawNode 事件?

提前为您提供帮助!

4

1 回答 1

2

我没有得到很好的重现,它只为可见节点生成 DrawNode 事件。但是,我确实看到它为父节点折叠的子节点生成 DrawNode 事件。您可以像这样过滤:

    private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) {
        if (e.Bounds.Height == 0) return;
        // etc..
    }
于 2012-10-16T13:28:51.230 回答