2013-08-31 11 views
12

私はこれらのグループボックスがあります。グループボックスからどのラジオボタンをチェックするのですか?

Enter image description here

私は以下のようにラジオボタンのチェックを真の状態に応じていくつかのコードを実行したい:

string chk = radiobutton.nme; // Name of radio button whose checked is true 
switch(chk) 
{ 
    case "Option1": 
     // Some code 
     break; 

    case "Option2": 
     // Some code 
     break; 

    case "Option3": 
     // Some code 
     break; 
} 

は、私が唯一できるように、直接的な方法はありますチェックされたラジオボタンの名前を取得しますか?

+0

ありがとうございます。だから私たちは今、利益を得る:) – bonCodigo

+0

@bonCodigoありがとう –

+0

[グループ内のどのラジオボタンがチェックされていますか?](http://stackoverflow.com/questions/1797907/which-radio-button-in-the-group- is-checked) –

答えて

24

あなたはすべてをまた見てみましょう

var buttons = this.Controls.OfType<RadioButton>() 
          .FirstOrDefault(n => n.Checked); 

のようにラジオボタンをチェックする見つけることができます:あなたが許容できるループのコストを作るだけで、いくつかのRadioButtonsを持っているという理由だけでしかし、私はここLINQを使用したいですCheckedChangedイベント。

Checkedプロパティの値が変更されたときに発生します。

+1

これ以上はうまくいかない;)歓声! – bonCodigo

+0

@Sonerこのコードを使用しようとしましたが、'Forms.RadioButton 'と'Controls.RadioButton'のあいまいさのエラーがありますが、それはどういう意味ですか? –

+0

@CésarAmorim 'System.Windows.Controls'と' System.Windows.Forms'の両方に 'RadioButton'クラスがあります。あなたのプロジェクトでは、これらの名前空間が追加され、名前だけを入力すると、この 'RadioButton'に名前空間が属することをコンパイラが混乱させるように感じます。解決策として、 'System.Windows.Controls.RadioButton'や' System.Windows.Forms.RadioButton'のような状況を防ぐためにフルネームを使用することができます。 –

3

CheckedChangedイベントを調べて、対応するイベントハンドラを登録し、Checkedラジオボタンの状態を変数に格納する必要があります。

var checkedRadio = new []{groupBox1, groupBox2} 
        .SelectMany(g=>g.Controls.OfType<RadioButton>() 
              .Where(r=>r.Checked)) 
// Print name 
foreach(var c in checkedRadio) 
    System.Diagnostics.Debug.Print(c.Name); 
-1

私の意見では、GroupBoxではなくRadioGroupを使用する方が良いでしょう。あなたがラジオグループを使用する場合は、常にこのよう簡単に選択した項目を見つけることができます:あなたがWindowsフォームを使用して設計する場合

radioGroup.selectedIndex; 

が、私は(私のコードはJavaであることに注意してください)。このようなRADIOGROUP動作を実装することをお勧め:

for (Component comp:groupBox1.components) { 
    if (((RadioButton)comp).selected) 
     return ((RadioButton)comp).value; 
} 

このコードブロックをメソッドに挿入して、選択したradioButton値を返すことができます。この値をSWITCH部分で使用できます。

+1

私はWindowsフォームを使用しており、ラジオグループのオプションはありません –

+0

pls使用方法を教えてください –

+0

@ Co.Aden私の回答を更新しました。 –

関連する問題