ラジオボタン的動作をするチェックボックスというのは複数個のチェックボックスがならんでいるにもかかわらず、 実際には複数にチェックできず、どれかしか選べないという排他的選択用のラジオボタンにすればいいのにという謎なチェックボックスのことです。
謎といわれることの多いWindows 2000, XP, Server 2003などのファイルのプロパティの属性の詳細設定のダイアログ中にあるチェックボックスです。
このダイアログ中に「圧縮属性または暗号化属性」というグループがありますが、この中のチェックボックスはどちらかしか選べないようになっています。例のラジオボタン的チェックボックスです。
あります。一見意味不明な挙動ですがちゃんと意味があります。
まず、a.txt に圧縮属性を設定し、 b.txt を暗号化属性を設定します。
そしてエクスプローラ等で両方選択した状態でプロパティを開き、同じように「属性の詳細」を開きます。すると下の画面のようになると思います。
両方のチェックボックスにチェックがあります(グレーになっていますが)。このように複数のファイルが選択された状態で複数の設定状態―どちらか一方のみではない―をあらわすためにチェックボックスになっているのです。
このグレーの状態は「チェックしているのとしていないものが混在してます」という「チェックされている、されていない」に続く第三の状態です(下に参考ページをリンクしておきます)。見た目的には意味を取りづらい気もしますが。
ともあれ、さも意味はないようで意味はあるということです。ちょっと考えればわかるのですが案外知られていないようなので書いてみました。
ThreeState プロパティは、コントロールで 2 ステートと 3 ステートのどちらをサポートするのかを決定します。 Checked プロパティを使用して、2 ステートのチェック ボックス コントロールの値を取得または設定し、 CheckState プロパティを使用して、3 ステートのチェック ボックス コントロールの値を取得または設定します。
メモ ThreeState プロパティが true に設定されている場合、 Checked プロパティは、チェックされた状態と不確定状態のどちらであるかを示す true を返します。
という感じになっています。CheckStateにCheckState.Indeterminateという値を指定すると中間という風になります。