C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: グループボックス内のチェックされたラジオボタン特定方法


(過去ログ 122 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■72972 / inTopicNo.1)  グループボックス内のチェックされたラジオボタン特定方法
  
□投稿者/ 鹿児 (7回)-(2014/08/06(Wed) 16:30:43)

分類:[.NET 全般] 

グループボックスの中に、複数のボタンと複数のラジオボタンが混在しています。

この中のチェックのついたラジオボタンを特定したいと思います。

そこで、下記のようなコードを書きました。

foreach(RadioButton ctl in groupBox1.Controls)
{
if(ctl.checked)
{
//処理をする
}
}

しかし、通常のボタンがある為、InvalidCastExceptionはユーザーコードによってハンドルされませんでした。というメッセージが表示されます。エラーがおこる理由はわかったのですが、回避方法がわかりません。

foreachを使わずに、if文で if(radioButton1.checked)という形でチェックはかけることはできますが、foreachが使えれば便利だと思い質問させて頂きました。

よろしくお願いいたします。

環境はC# .NET 4.0です。
引用返信 編集キー/
■72973 / inTopicNo.2)  Re[1]: グループボックス内のチェックされたラジオボタン特定方法
□投稿者/ Hongliang (218回)-(2014/08/06(Wed) 16:39:49)
2014/08/06(Wed) 16:40:22 編集(投稿者)
Enumerable.OfType<TResult>拡張メソッドなどいかがでしょうか。

foreach (var radio in groupBox1.Controls.OfType<RadioButton>()) {
    ....
}

// チェック状態とインデックスを保持するクラスを作って
// バインディングというのも一案。

引用返信 編集キー/
■73007 / inTopicNo.3)  Re[2]: グループボックス内のチェックされたラジオボタン特定方法
□投稿者/ 鹿児 (8回)-(2014/08/10(Sun) 20:14:53)
Hongliang 様

ご回答ありがとうございました。お教え頂きました通りでやってみたら、うまくいきました。
ありがとうございます。

foreach (var radio in groupBox1.Controls.OfType<RadioButton>()
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -