2009-08-21 87 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.