如何取消WinForms TreeView ExpandAll?

时间:2009-08-21 22:54:40

标签: c# winforms treeview

我有一个winforms TreeView控件,允许您浏览对象层次结构。顺便提一下,对象之间有一些循环引用。

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

你是怎么做的?

1 个答案:

答案 0 :(得分:0)

对于ExpandAll方法,您不能将其作为递归调用Expand和非虚拟方式处理,因此您甚至无法覆盖它。

至于防止'*'键,您可以挂钩到树视图的OnKeyDown事件并使用以下代码取消该键:

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

作为一个安全防护,您可以在控制器/演示者/视图模型中注意递归,并且只允许一定数量的递归,例如4。