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

関連する問題