3


0

私は、UI要素の1つとしてTreeViewを持つ.Netデスクトップアプリケーションを持っています。

そのTreeViewを複数選択できるようにしたいのですが、それだけはサポートされていません。

それで私はチェックボックスをツリーに追加しています。私の問題はいくつかの項目だけが選択可能であり、それらが一貫して選択をカスケードできないことです。

他のチェックボックスを無効にしたり非表示にしたりする方法はありますか?

3 Answer


4


TreeViewのデフォルトの動作は、 Checkboxesプロパティがtrueに設定されている場合です。そのチェックボックスはすべてのTreeNodeに対して表示されます。

あなたが探している振る舞い - いくつかのチェックボックスを無効にしたり隠したりする - は通常の振る舞いのカスタム修正です。 デフォルトの動作をオーバーライドするTreeViewまたはTreeNodeのカスタム実装を作成できます。 もう1つ試すことは、TreeView.http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.stateimagelist%28VS.80%29.aspx [StateImageList]プロパティを使用することです。 詳細情報をチェックするサイトもあります。


1


私が最近書いたエディタでも非常によく似た問題がありました。 結局、私はノードの選択状態を決定するために TreeNode`の BackColor`プロパティを使いました。 それからShift / Controlキーの状態をチェックして選択されたノードが選択に追加されているのか新しい選択を作成するのかを決定する `SelectionChanged`イベント用のハンドラを書きました。 ツリー検索を排除するために現在選択されているノードの `Generic

List <>`もありました。


0


_ .NETに複数選択ツリービューがないのはなぜですか? 1つの用途が非常にたくさんあり、ツリービューでチェックボックスをオンにするのはかなりお粗末な選択肢です。 _