2016-04-07 20 views
1

2つの異なるボックスがあり、各ボックスに複数のRadioButtonsがあるとします。ユーザーがボックス1、ボックス2、ボックス3などからRadioButtonを選択すると、すべてRadioButtonsの選択値がTextBoxに入力されます。例えば。 box2で選択された24、box3で選択された20、それは次のようになります:24 20またはA - 24 - 20.それぞれRadioButtonに対して以下のコードを試しましたが、その時点でRadioButton複数のRadioButton値を1つのTextBoxに取得

if (RadioButton1.Checked) //If checked == true 
{ 
    textBox1.Text = "12"; 
    //example 
} 
+0

このように見えます:textBox1.Text + = rdbtn.Text;しかし、訂正して別のラジオボックスをチェックすると、以前に選択された値がテキストボックスに保持され、新たに選択された値が追加されます。それは前のものを置き換えません。さらに、すべての文字の間にスペースを入れることは素晴らしいことです。 – Truex

答えて

1

あなたは、すべてのチェックをラジオボタンのテキストをこのように得ることができます。

var radios = this.Controls.OfType<GroupBox>() 
       .SelectMany(x => x.Controls.OfType<RadioButton>()) 
       .Where(x => x.Checked == true) 
       .Select(x => x.Text); 

this.textBoxText1.Text = string.Join("-", radios); 

返される結果の順序を希望しない場合は、グループボックスを注文することができますTabIndexまたはNameのようなプロパティに基づいて、this.Controls.OfType<GroupBox>().OrderBy(x=>x.TabIndex)を使用すると、結果は望ましい順序になります。

+0

このようなlinqクエリを使用して、目的の結果を得ることができます。 –

+0

最後に私はこのコードを実装しました。これは私が必要としていたものです。あなたのお手伝いをよろしくお願いいたします。 – Truex

+0

歓迎です:) –

0

だけではなく、単に+=演算子を使用して、それへのあなたの文字列を連結し、あなたのTextBox.Textプロパティを設定し、事前にありがとうございます。

例:

textBox1.Text += "12";

関連する問題