1. sayfa
if le yapmak istemiyorum. döngü kurmam gerekli. |
Webforms icinse foreach ile kontrollerin icinde donebilirsin foreach (Control c in this.Controls) { if (c is CheckBox) { if (((CheckBox)c).Checked == true) // Ne yapacaksan buraya } } |
checbox için sender işlemini araştır. Mantık şu olacak checboxların hepsi için tek bir event hazırlayacaksın ve checboxların hepsine bağlayacaksın. event içerisinde de sender ile hangi chacboxın işaretlendiğini bulup istediğin text i kullanabilirsin. checkbox ın tag propertiesinede o checbox ın tutacağı texti yazabilirsin. kullanırkende. örneğin string checktext= checbox.tag.tostring() şeklinde alarak kullanabilirsin. örnek kodda veriyorum. private void checkBox_CheckedChanged(object sender, EventArgs e) { CheckBox Chk = (CheckBox)sender; if (Chk.Checked) { MessageBox.Show(Chk.Tag.ToString()); } } bu eventı formuna koy ve tüm checkboxların checked change ına ata yazdığım gibi yine tag propertiesinide kullan. messagebox kısmınıda sen ne yaptırmak istiyorsan o kodu yaz |
Class ac , constructor icine checkbox lari listeye ekle .Metod olustur for loop ile listedeki checkboxlari sorgula.Button click event ine bu metodu ekle Yapamazsan eve gidince yazarim. |
bu şekilde sadece CheckBoxlar işaretli mi değil mi diye kontrol ettirebildim. bu biryere kadar işe yarıyor. ama hangi CheckBox ın seçili olup olmadığını alamadım henüz. private void button3_Click(object sender, EventArgs e) { int sayac = 0; foreach (Control nesne in groupBox5.Controls) //groupBox5 checklerin içinde olduğu groupBox adı { if (nesne is CheckBox) { if (((nesne) as CheckBox).Checked == true) { sayac++; } } } if (sayac == 0) { //MessageBox.Show("Hiç bir CheckBox seçili değil."); }; |
checkboxların checked change ına atama olayını açıklayabilir misin? edt. private void checkBox1_CheckedChanged(object sender, EventArgs e) ta atadığım değişkeni farklı bir yerde kullanamadım, sanırım bunu söylemek istedin. CheckBox Chk = (CheckBox)sender; if (Chk.Checked) { MessageBox.Show(Chk.Tag.ToString()); string denemechk1 = (Chk.Tag.ToString()); denemechk1 farklı bir yerde kullanılmıyor. |
şuradan görebileceğin gibihttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.checkbox_properties(v=vs.110).aspx checkbox un property leri içinde text'den veya ID 'den çıkarabilirsin. Bence şöyle yap. her bir c içinde eğer checked ise en tepe tanımladığın bir dizi içine text'lerini at. diziden foreach le dönerek string i yaparsın. veya string sonuc = ""; if(c.checked) //true demene gerek yok aslında { sonuc = sonuc + c.text + " şıkkını seçtiniz "; } |
checboxı seçtiğinde properties penceresi gibi event pencereside vardır.(şimşek simgesine basılınca açılıyor) orda yazdığım eventı bul. combobox halindedir. içini açtığında forma koy dediğim evente orada grürürsün onu seç. her checbox için yap. değişken olayında ise değişkeni eventen içerisinde tanımlamışsın o nedenle sadece event içerisinde kullanırsın. değişkeni global olarak tanımla. |
void Button1Click(object sender, EventArgs e) { textBox1.Clear(); foreach (Control c in groupBox1.Controls) { if (c is CheckBox) { if (((CheckBox)c).Checked == true) textBox1.Text=textBox1.Text+c.Text+" i seçtiniz "; } } } |
herkese çok teşekkürler. bekoc ve Gökşen Paslı nın yöntemiyle daha kolay çözdüm. |
1. sayfa
Bir groupBox ım var ve içinde, textlerinde 1,2,3,4,5,A,B,C,D,E yazan 10 tane checkBox ım var.
Amacım butona tıklandığında hangi checkBox işaretliyse textBox1 içerisine checkBox ların textinde yazanları listelemesi.
yani kısaca checkBox 1-5-C-D işaretliyse textBox1 içerisine 1iseçtiniz, 5 i seçtiniz, C yi seçtiniz, D yi seçtiniz yazsın.
yardımcı olursanız sevinirim.
< Bu mesaj bu kişi tarafından değiştirildi reyta -- 30 Ekim 2014; 0:01:26 >