SOFTドット絵エディタ「EDGE2」、MIDI音楽編集ソフト「Domino」、楽曲などを配布している個人サイトです。ラジオボタンの上手な使い方を考えるC#,ProgrammingTips,WinFormsMFCどっぷり時代からC#のWinFormsをいじりだして半年ぐらい経った気がしますが、ラジオボタンの上手な使い方がどこを調べてもいまいち解りませんでした。MFCならラジオボタンのどこにチェックが入っているかインデックス値を取得・設定出来るのですが、WinFormsはその辺のサポート機能が一切無いんですよね。コンボボックスならデータバインディング等も使えていろんなサイトでも紹介されているのですが、ラジオボタンの記事はほとんど見かけた事がありません。試した結果、なんとか着地できたようなので、晒してみたいと思います。MFCと違い、WinFomrsでは「ラジオボタンのグループ化=どっかのコンテナにまとめて乗せる」というのが大前提です。(これ最初は違和感有ったのですが。)逆に言えば、コンテナに対してラジオボタンの便利関数を実装出来れば良さそうです。C#は拡張メソッドが使えますから、以下のような関数を実装してみました。[ラジオボタンにチェックが入った時の処理]);などと呼べば、良いかと思います。この例は、フォーム上のグループボックスに用紙サイズのラジオボタンがいくつか並んでいるものです。ラジオボタンのTagにコードであらかじめEnum値などを入れておき、それをやりくりするのがミソです(Enumで無くとも数値でも文字列でも何でも良いのですが)。イベントに関してもデザイナで一つ一つに割り当てるのは面倒くさいので、コードで一気にやってしまいます。後からチェックの入った情報を取り出したい時は(PaperKind)sizeGroupBox.GetCheckedRadioButtonTag()などとすれば良いです。タイプセーフ的にあんまりなコードですが、いちいちフォームでラジオボタンのチェックプロパティを見に行ってチェックされていたら云々、と書くよりは良いと思うのですがどうでしょうかね。blockworks.このサイトについてサイトマップRSSフィード。