から派生したコントロールがTreeView
あります。これは、いくつかの階層データを反映し、レイジーな方法でノードを作成します。
特定のノードが展開されているとき、そのNodes
コレクションにダミー ノードがあるかどうかを確認し、存在する場合はそれを削除し、データ ソースからデータをロードして実際の子ノードを作成します。
ノードのデータ読み込みは、次の構造で囲まれています。
Cursor = Cursors.WaitCursor;
BeginUpdate();
try
{
// node.Nodes.Add(...)
}
finally
{
EndUpdate();
Cursor = Cursors.Default;
}
これは、次の 1 つのケースを除いて正常に機能します。ユーザーがノード上で (アスタリスク) を押す*と、多くのネストされたノードがロードされます。上記のコードにより、ツリー ビューが点滅し、スクロールバーが実行されます。
すべての子ノードが展開されると、ノードの展開が終了すると思いましたが、ExpandAll
これは誤りです。*
を押し*た場合に拡張エンディングを検出する方法はありTreeView
ますか?