.Net Forms.TreeView でチェックボックスを制御するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/39119

質問

UI 要素の 1 つとして TreeView を備えた .Net デスクトップ アプリケーションがあります。

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

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

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

役に立ちましたか?

解決

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

あなたが探している動作 (一部のチェックボックスを無効化または非表示にする) は、通常の動作をカスタム変更したものです。デフォルトの動作をオーバーライドする TreeView または TreeNode のカスタム実装を作成できます。もう 1 つ試してみたいのは、TreeView を使用することです。状態画像リスト 財産。詳細については、次のサイトを参照してください。

他のヒント

最近書いたエディターでも同様の問題がありました。結局、私が使用したのは、 TreeNodeさんの BackColor プロパティを使用してノードの選択状態を決定します。次に、 SelectionChanged Shift/Ctrl キーの状態をチェックして、選択したノードが選択範囲に追加/削除されているか、それとも新しい選択範囲を作成しているかを判断するイベント。もありました Generic::List<> 現在選択されているノードを削除して、ツリー検索を排除します。

MultiSelectTreeView:

.NET には複数選択ツリービューがないのはなぜですか?使い方はたくさんありますが、ツリービューでチェックボックスをオンにするのはかなりひどい代替手段です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top