20

TreeViewWinForms アプリケーションのコントロールでいくつかのチェックボックスを無効にできるようにする必要がありますが、標準TreeViewコントロールにはそのような機能が組み込まれていません。

私はすでにTreeView.BeforeCheckイベントを使用しており、ノードが無効になっていて、それが完全に正常に機能する場合はキャンセルします。

ForeColorまた、無効なノードの を に変更しGrayTextます。

シンプルで堅牢なソリューションを持っている人はいますか?

4

4 に答える 4

0

TreeView.BeforeCheck -- このイベントに登録し、ノードがチェックボックスのチェックを許可されているかどうかを確認します。チェックできない場合は、TreeViewCancelEventArgs の Cancel プロパティを設定してイベントをキャンセルできます。これにより、ユーザーがこれらのボックスをチェックするのを防ぐことができればよいのですが、最高のユーザー エクスペリエンスにはなりません。

チェックできないアイテムのチェックボックスを削除するには、おそらく owner-draw を使用して、チェックボックスの上に塗りつぶされた長方形を描画して削除することができます。

于 2009-03-30T18:15:23.647 に答える
0

これを行うために組み込まれているものは何もありません。BeforeCheck イベントを使用して、目的のノードに対してキャンセルすることができます。チェックボックスの外観が重要な場合は、そこに画像を配置して、チェックボックスが無効になっていることを示す必要があります。

このリンクはあなたの興味を引くかもしれません。

于 2009-03-30T18:17:02.503 に答える