Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

[C#] Checkbox ve Label ilişkileri


Sypro

Öne çıkan mesajlar

C# ile abuk bişi yapma denemem var bu aralar.. Şöyle hayal edin; 4 tane checkbox ve 15 tane label var.
Form geldiğinde tüm label'lar için Visible = false; geliyor. Checkbox'lar da zaten bu false değerini true yapmak için var. Mesela ilk checkbox için
said:
if (checkBox1.Checked == true)
label1.Visible = true;

durumu mevcut, aynı şekilde 2 3 4'üncü checkbox'ların 2 3 4'üncü label'lar ile de sorunu yok.

Sorunun başladığı nokta çoklu seçimler. Mesela 1 ve 2. checkbox'ları checked yaptığımda, 1 2 ve 5. label'ların gözükmesi gerek; fakat 1 ve 2 gözüküyor, 5'ten ses seda yok.
said:
if ((checkBox1.Checked == true) && (checkBox2.Checked == true))
label5.Visible = true;



hoş bunu böyle elli tane if/else ile yazmaktan daha kolay bir yol da vardır mutlaka ama aklıma gelmiyor.
ilim irfan fikir sahibi kişilerin fikirlerini paylaşmalarını dört gözle bekliyorum artık..
Link to comment
Sosyal ağlarda paylaş

void vercoskuyu()
{
long int deger = 0;
if(checkbox1.checked)
deger+=1;

if(checkbox2.checked)
deger+=10;

if(checkbox3.checked)
deger+=100;

if(checkbox4.checked)
deger+=1000;

if(deger%10 == 1)
label1.visible = true;

if(deger%100 > 10)
label2.visible = true;

if(deger%1000 > 100)
label3.visible = true;

if(deger%10000 > 1000)
label4.visible = true;
}
Link to comment
Sosyal ağlarda paylaş

Kodu görmeden bir şey diyemicem ama beni rahatsız eden boolean karşılaştırmasını eşittirle yapman oldu.

if (checkBox1.Checked == true)

yerine

if (checkBox1.Checked)

yazarsan çok daha okunaklı olur. Tersini kontrol ederken de:

if (!checkBox1.Checked)

Edik: Sorununla bir alakası yok tabi bu yorumun.
Link to comment
Sosyal ağlarda paylaş

Tüm checkboxların checkedchanged event'ine aynı metodu koy. Mesela labelyenile().


void labelyenile()
{
label1.Visible = (checkbox1.Checked && checkbox2.Checked && ...);
label2.Visible = (checkbox4.Checked && checkbox10.Checked && ...);
...
}


Şimdi şu soru var kafamda:
Tek bi label'ın visible olması için birden fazla durum olabilri mi? Label 1, checkboxlar 1 ve 2 veya 5 ve 6 işaretliyken görünür olsun, gibi.
Eğer böyle bi durum varsa, her label için yuakrda yazığım metodun içindeki and gruplarını or'licaksın. Mesela verdğim örnekte:

label1.Visible = (checkbox1.Checked && checkbox2.Checked) || (checkbox5.Checked && checkbox6.Checked);



Ha eğer bi label sadece tek bi durumda görünür oluyosa ve diyelim labellar 1, 2 ve 5 yalnızca checkboxlar 3 ve 4 işaretliyken görünür oluyosa şöyle de yapabilirsin:


label1.Visible = label2.Visible = label5.Visible = (checkbox3.Checked && checkbox4.Checked);


Böylece her label için ayrı ayrı yazmana gerek kalmaz aynı satırı. Ama dediğim gibi ilk sorunun cevabına bağlı bu.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...