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 に答える