En iyi yanıtlayıcılar
textbox'ın ismindeki sıraya göre gizlemek

Soru
-
merhaba arkadaşlar,
girdiğim değer 10 ise;
textbox1,textbox2,textbox3,textbox4,textbox5,textbox6.......textbox10 isimli textboxların görünümünü gizli yapacak bir döngü var mı acaba?
teşekkürler...
- Düzenleyen HakanDoğan 23 Kasım 2016 Çarşamba 16:45
Yanıtlar
-
Sanirim windows forms'dan bahsediyorsun:
Yontem 1:
int girdigimDeger = 10; for (int i = 1; i <= girdigimDeger; i++) { string name = string.Format("{0}{1}","textbox", i); var control = frm.Controls.OfType<TextBox>().SingleOrDefault( c => c.Name == name); if (control != null) { control.Visible = false; } }
Yontem 2:
for (int i = 1; i <= girdigimDeger; i++) { string name = string.Format("{0}{1}", "textbox", i); var control = frm.Controls[name] as TextBox; if (control != null) { control.Visible = false; } }
(Baska yontemler de var ama gereksiz)
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 28 Kasım 2016 Pazartesi 14:27
-
O zaman her seferinde hepsinin degerini false ya da true yap:
int maxDeger = 16; int girilenDeger; int.TryParse(txtgörevsayısı.Text, out girilenDeger); for (int i = 1; i <= maxDeger; i++) { string name = string.Format("{0}{1}","textbox", i); var control = this.Controls[name] as TextBox; if (control != null) { control.Visible = (i <= girilenDeger); } }
Not: if blogunda o sekilde {} kullanmamak zararli olabilir. Bu kodda tamamen sorunsuz, ve ozellikle eski C kullanicilari o sekilde yazar ancak yeni bir satir eklemen gerektiginde de kolay yapilabilecek bir hatanin nedeni. Hic olmazsa ayni satirda {} kullansan diye dusunuyorum (kisisel tercih sonucta).
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 28 Kasım 2016 Pazartesi 14:27
Tüm Yanıtlar
-
Sanirim windows forms'dan bahsediyorsun:
Yontem 1:
int girdigimDeger = 10; for (int i = 1; i <= girdigimDeger; i++) { string name = string.Format("{0}{1}","textbox", i); var control = frm.Controls.OfType<TextBox>().SingleOrDefault( c => c.Name == name); if (control != null) { control.Visible = false; } }
Yontem 2:
for (int i = 1; i <= girdigimDeger; i++) { string name = string.Format("{0}{1}", "textbox", i); var control = frm.Controls[name] as TextBox; if (control != null) { control.Visible = false; } }
(Baska yontemler de var ama gereksiz)
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 28 Kasım 2016 Pazartesi 14:27
-
Sanirim windows forms'dan bahsediyorsun:
Yontem 1:
int girdigimDeger = 10; for (int i = 1; i <= girdigimDeger; i++) { string name = string.Format("{0}{1}","textbox", i); var control = frm.Controls.OfType<TextBox>().SingleOrDefault( c => c.Name == name); if (control != null) { control.Visible = false; } }
Yontem 2:
for (int i = 1; i <= girdigimDeger; i++) { string name = string.Format("{0}{1}", "textbox", i); var control = frm.Controls[name] as TextBox; if (control != null) { control.Visible = false; } }
(Baska yontemler de var ama gereksiz)
cevap için teşekkürler.
biraz yeniyim c# da. özür dilerim...
var control = frm.Controls[name] as TextBox;
bölümünde hata alıyorum.
frm kısmına kendi forum adını da yazdım fakat yine aynı sonuç...
-
-
-
-
Çok doğru :)
ilk başta tüm textboxlarım gizlidir.
ilk değerim 5 ise txt1-2-3-4-5 bunları görünür yapıyor.
ikinci değerim 2 olduğunda yine aynı kalıyor. yani 1-2-3-4-5 yine görünür oluyor. sadece 1-2 görünür olmalı.
for (int i = 1; i <= Convert.ToInt32(txtgörevsayısı.Text); i++)
{
string name = string.Format("{0}{1}", "txt", i);
var control = this.Controls[name] as TextBox;
if (control != null) control.Visible = true;
}teşekkürler.
-
O zaman her seferinde hepsinin degerini false ya da true yap:
int maxDeger = 16; int girilenDeger; int.TryParse(txtgörevsayısı.Text, out girilenDeger); for (int i = 1; i <= maxDeger; i++) { string name = string.Format("{0}{1}","textbox", i); var control = this.Controls[name] as TextBox; if (control != null) { control.Visible = (i <= girilenDeger); } }
Not: if blogunda o sekilde {} kullanmamak zararli olabilir. Bu kodda tamamen sorunsuz, ve ozellikle eski C kullanicilari o sekilde yazar ancak yeni bir satir eklemen gerektiginde de kolay yapilabilecek bir hatanin nedeni. Hic olmazsa ayni satirda {} kullansan diye dusunuyorum (kisisel tercih sonucta).
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 28 Kasım 2016 Pazartesi 14:27
-