2009-08-21 21 views
0

我有一个WinForms的TreeView控件,允许您浏览对象层次结构。顺便说一下,对象之间有一些循环引用。如何取消WinForms TreeView ExpandAll?

我没有问题让用户导航循环引用,但我想阻止执行'*'按键或ExpandAll()命令。

你如何去做这件事?

回答

0

对于ExpandAll方法,您不能像处理递归调用Expand和它的非虚拟一样,因此您甚至无法覆盖它。

作为防止“*”键,你可以连接到树视图的onKeyDown事件并使用下面的代码取消键:

private void treeView1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Multiply) 
    { 
     e.Handled = true; 
     e.SuppressKeyPress = true; 
    } 
} 

作为一种安全防护装置,你可以看出来的递归在您的控制器/演示者/视图模型,并且只允许一定数量的递归,例如4.