我有一个从 派生的控件,TreeView
它反映了一些分层数据并以惰性方式创建节点。
当一个特定的节点被扩展时,我正在检查它的Nodes
集合中是否有一个虚拟节点,如果是,我正在删除它,从数据源加载数据并创建真正的子节点。
节点的数据加载被这个结构包围:
Cursor = Cursors.WaitCursor;
BeginUpdate();
try
{
// node.Nodes.Add(...)
}
finally
{
EndUpdate();
Cursor = Cursors.Default;
}
这工作正常,除了一种情况:当用户*在一个节点上按下(星号)时,这将加载许多嵌套节点,依此类推。由于上面的代码,我得到了一个闪烁的树视图,并带有一个正在运行的滚动条。
我想,当所有子节点都被扩展时,一个节点的扩展ExpandAll
(这就是这样*做的)结束,但这是错误的。
我想知道,有没有办法在按下*时检测扩展结束TreeView
?