2009-07-27 10 views
0

私はVS2005でC#を使用しています。私のアプリケーションでは、4つのラジオボタンを作成する必要があります。ユーザーは、私はボタンがチェックされているラジオ知っている必要があります送信ボタンをクリックするとDynamicRadio Button

A(Radio Button) 
B(Radio Button) 
C(Radio Button) 
D(Radio Button) 

Submit (Button) 

:私のフォームは次のようになります。これをどうやって決めることができますか?

+0

windows-formsタグが追加されました。私はWeb用のコードで回答しましたが、その質問がwindowsと言うことを認識しました。 –

答えて

1

すべてのラジオボタンをList<RadioButton>に追加すると、送信がチェックされて、どれがチェックされているかがわかります。

1

あなたはそれがチェックされているかどうかを確認するためにRadioButtonCheckedプロパティを使用することができます。

bool isChecked = radA.Checked; 

私は頻繁にチェックされている正確RadioButtonを取得するには、次のヘルパー関数を使用します。

public RadioButton GetCheckedRadioButton(Control container) 
{ 
    if (container == null) { 
     return null; 
    } 
    else if (container is RadioButton) { 
     return GetCheckedRadioButton(container.Parent); 
    } 
    else { 
     foreach (Control childControl in container.Controls) { 
      if (childControl is RadioButton) { 
       RadioButton radioBtn = (RadioButton) childControl; 

       if (radioBtn.Checked) { 
        return radioBtn; 
       } 
      } 
     } 

     return null; 
    } 
} 

次に、この関数をコントロールまたはそのコンテナの1つを使用して呼び出すだけで、switch文を次のように実行できます。

switch(GetCheckedRadioButton(radA)) { 
    case radA: 
     // radA is checked 
     break; 
    case radB: 
     // radB is checked 
     break; 
} 

個人的に、私はいつもよりそれがそれほど冗長見つける:あなたは4つのラジオボタンのみを必要とすることを確実に知るならば、私はちょうどこのようなコードを記述します

if(radA.Checked) { 
    //radA is checked 
} 
else if(radB.Checked) { 
    //radB is checked 
} 
0

if (Radio1.Checked) ... 
if (Radio2.Checked) ... 
if (Radio3.Checked) ... 
... 

あなたがそれらの一方のみが(グループボックスまたはいくつかの他のメカニズムを使用して)同時にチェックできることがわかっている場合は、あなたではなく、「他の場合は、」使用してこれを最適化することができます。

あなたがもっと必要になる可能性がある場合、これは無駄になる可能性があるので、私は他の答えに同意します。あなたはあなたの選択したコレクションに入れて、チェックされます。