2016-04-07 21 views
1

Hayal edelim, bir kaç farklı kutumuz var, her kutuda birden çok RadioButtons var. Kullanıcı, RadioButton'u kutu1, kutu 2, kutu3, vb'den seçtiğinde, RadioButtons'dan seçilen değerler TextBox'a girilir. Örneğin. Kutu2'de seçilen bir kutuda 1, 24 seçili, kutu3'te seçilen 20 - aşağıdakileri vermelidir: A 24 20 veya A - 24 - 20. Her bir RadioButton için aşağıdaki kodla denedim, ancak yalnızca birinden bir değer giriyor Zamanda RadioButton. peşinBir TextBox'a Çoklu RadioButton Değerleri Getirin

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

Bu yardımcı oldu gibi görünüyor: textBox1.Text + = rdbtn.Text; Ancak, bir düzeltme yaptığımda ve farklı bir radyo kutusunu kontrol ettiğimde, önceden seçilen değer metin kutusunda tutulur ve yeni seçilen bir eklenir; Bir öncekinin yerini almaz. Ayrıca, tüm karakterler arasında boşluk olması harika olurdu. – Truex

cevap

1

Bu yolu hepsini kontrol radyo düğmesi Metin alabilirsiniz this.Controls.OfType<GroupBox>().OrderBy(x=>x.TabIndex) kullanarak TabIndex veya Name gibi bir özelliğe dayanarak, sonuç istenen sırada olacaktır.

+0

İstediğiniz sonucu almak için böyle bir linq sorgusunu kullanabilirsiniz. –

+0

Son olarak, bu kodu uyguladım ve tam da ihtiyacım olan şey, şerefe. Yardımınız için teşekkür ederiz. – Truex

+0

Hoş Geldiniz :) –

0

yerine sadece basitçe += operatörü kullanarak kendisine Dizelerinizi bitiştirmek için TextBox ait .Text özelliğinin ayarlanmasında teşekkür ederiz.

Örnek: dönen sonuç sırası istenmiyorsa

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); 

, grup kutuları sipariş edebilirsiniz:

textBox1.Text += "12";

İlgili konular