.NET Treeview:如何防止重新绘制未更改的子节点?

时间:2012-10-16 13:14:29

标签: .net winforms performance events treeview

我正在使用.NET 2010中的WinForms。我创建了一个继承自Treeview的用户控件,我正在使用所有者绘图作为我的treenodes的文本部分。

现在我必须解决一个奇怪的性能问题:

当treenode的文本(我称之为“parentnode”)发生变化时,treeview控件会为每个“parentnodes”的子节点触发DrawNode事件,无论它们是否可见!!! p>

这对我的应用程序造成了很大的性能问题。如何阻止treeview控件为每个子节点触发DrawNode事件?

请您提前帮忙!

1 个答案:

答案 0 :(得分:2)

我没有为此获得一个明星的重复,它只为可见节点生成DrawNode事件。但是,我确实看到它为父节点折叠的子节点生成DrawNode事件。您可以过滤以下内容:

    private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) {
        if (e.Bounds.Height == 0) return;
        // etc..
    }