Çözüldü C# Listbox kısıtlama

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Mert Pektaş

Hectopat
Katılım
21 Kasım 2021
Mesajlar
98
Daha fazla  
Cinsiyet
Erkek
Merhaba ben nöbetçi takip sistemi yapıyorum ve listboxa item ekliyorum fakat sadice 3 tane eklemek istiyorum 4.yü eklediğinde sistem en fazla 3 nöbetçi koyabilirsiniz! Uyarısını verecek yardımcı olursanız sevinirim.
 
Çözüm
Tamamdır. Button1 içerisini önce bu hale getirin;

C#:
            int list_count = listBox1.Items.Count;
            if ( list_count < 3)
            {
                if (listBox1.SelectedItem == "Mert")
                {
                    listBox2.Items.Add("Mert");
                    listBox1.Items.Remove("Mert");
                }
                else if (listBox1.SelectedItem == "Kaan")
                {
                    listBox2.Items.Add("Kaan");
                    listBox1.Items.Remove("Kaan");
                }
                else if (listBox1.SelectedItem == "Burak")
                {
                    listBox2.Items.Add("Burak");
                    listBox1.Items.Remove("Burak");
                }
                else if (listBox1.SelectedItem == "Enes")
                {
                    listBox2.Items.Add("Enes");
                    listBox1.Items.Remove("Enes");
                }
                else if (listBox1.SelectedItem == "Ege")
                {
                    listBox2.Items.Add("Ege");
                    listBox1.Items.Remove("Ege");
                }
                else if (listBox1.SelectedItem == "Emir")
                {
                    listBox2.Items.Add("Emir");
                    listBox1.Items.Remove("Emir");
                }
                else if (listBox1.SelectedItem == "Muharrem")
                {
                    listBox2.Items.Add("Muharrem");
                    listBox1.Items.Remove("Muharrem");
                }
                else if (listBox1.SelectedItem == "Belenay")
                {
                    listBox2.Items.Add("Belenay");
                    listBox1.Items.Remove("Belenay");
                }
                else if (listBox1.SelectedItem == "Kezban")
                {
                    listBox2.Items.Add("Kezban");
                    listBox1.Items.Remove("Kezban");
                }
            }
            else
            {
                MessageBox.Show("En fazla 3 değer girebilirsiniz.");
            }
Böyle yapın ve 500 tane if yerine bir container kullanıp içinde olup olmadığına bakın.
Tonla indentin bir yararı yok. Okumayı zorlaştırıyor.
Birden fazla kez kullanmayacaksanız değişkene atamanıza gerek yok. Zaten release modda compiler bu şekilde yapar. Bu da okumayı zorlaştırıyor. İnsana başka nerede kullanıldı acaba diye sorduruyor.
C# container'larını bilmediğim için yapmadım. @300319 bir şeyler önerebilir.

Kod:
if (listBox2.Items.Count >= 3)
{
    MessageBox.Show("En fazla 3 değer girebilirsiniz.");
    return;
}


if (listBox1.SelectedItem == "Mert")
{
    listBox2.Items.Add("Mert");
    listBox1.Items.Remove("Mert");
}
else if (listBox1.SelectedItem == "Kaan")
{
    listBox2.Items.Add("Kaan");
    listBox1.Items.Remove("Kaan");
}
...
 

Aynen öyle hocam.
OOP'ye uymuyor üyenin algoritması.

Daha basiti ve dinamik hali bu şekilde yapılabilir;
C#:
public void process(){
    int list_count = listBox2.Items.Count;
    if (list_count < 3){
        if (listBox1.SelectedIndex != -1){
            int select_item = listBox1.SelectedIndex;
            listBox2.Items.Add(listBox1.Items[select_item]);
            istBox1.Items.Remove(select_item);
        }else{
            MessageBox.Show("Lütfen önce değer seçiniz");
        }
    }else{
            MessageBox.Show("En fazla 3 değer ekleyebilirsiniz");
    }
}
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…