8.3 – Listeleme ve Silme İşlemleri


📘 8.3 – Listeleme ve Silme İşlemleri


🔹 Açıklama:

Bu bölümde kullanıcıdan alınarak nesne hâline getirilen öğrenci bilgileri, görsel kontrollerde (özellikle ListBox) listelenecek ve bu listeden istenilen kayıtlar silinebilecek.

Özellikle ListBox gibi kontrol öğeleri ile çalışmak, kullanıcıya veriyi okuma ve yönetme imkânı sağlar. Silme işlemi, genellikle kullanıcı bir nesneyi seçtiğinde ve sil düğmesine bastığında gerçekleşir.


📍 Kullanım Alanları:

  • Öğrenci takip sistemleri
  • Kayıt listeleri
  • Ürün ya da kullanıcı listeleri
  • Sınav sonucu gösterimleri
  • Temel CRUD işlemlerine (Create, Read, Update, Delete) geçiş

🎯 Kazanımlar:

  • ListBox kullanarak nesneleri görsel olarak listeleme
  • ToString() yöntemiyle nesne temsili
  • Seçilen öğeyi silme
  • Kullanıcıya geri bildirim verme
  • Listeleme ve silme işlemleri için doğru kontrol yapısını kurma

🧪 8.3 – Listeleme ve Silme İşlemleri: Uygulamalı 5 Örnek


📌 Örnek 1: Öğrenci Nesnelerini ListBox’ta Listeleme

🎨 Form Elemanları:

  • txtAd, txtSoyad, txtNumara, btnEkle, lstOgrenciler

💻 Kod:

List<Ogrenci> ogrenciListesi = new List<Ogrenci>();

private void btnEkle_Click(object sender, EventArgs e)
{
    Ogrenci ogr = new Ogrenci
    {
        Ad = txtAd.Text,
        Soyad = txtSoyad.Text,
        Numara = Convert.ToInt32(txtNumara.Text)
    };

    ogrenciListesi.Add(ogr);
    lstOgrenciler.Items.Add(ogr); // ToString() metodu kullanılmalı
}

📝 Açıklama:

Liste kontrolüne doğrudan nesne eklenir. ToString() metodu varsa, kullanıcı için anlamlı bir temsil görünür.


📌 Örnek 2: Öğrenci Nesnesini Seçip Silme

🎨 Form Elemanları:

  • lstOgrenciler, btnSil

💻 Kod:

private void btnSil_Click(object sender, EventArgs e)
{
    if (lstOgrenciler.SelectedIndex >= 0)
    {
        int seciliIndex = lstOgrenciler.SelectedIndex;
        ogrenciListesi.RemoveAt(seciliIndex);
        lstOgrenciler.Items.RemoveAt(seciliIndex);
    }
    else
    {
        MessageBox.Show("Lütfen silmek için bir öğrenci seçin.");
    }
}

📝 Açıklama:

Hem List<Ogrenci> listesinden hem de ListBox’tan eşzamanlı silme sağlandı.


📌 Örnek 3: Listeyi Güncel Tutma

🎨 Ekstra Kod:

private void ListeyiGuncelle()
{
    lstOgrenciler.Items.Clear();
    foreach (var o in ogrenciListesi)
    {
        lstOgrenciler.Items.Add(o);
    }
}

📝 Kullanım:

Her ekleme/silme işleminden sonra ListeyiGuncelle(); çağrılarak UI güncel tutulur.


📌 Örnek 4: Silme İşlemi Öncesi Onay Kutusu

🎨 Kod:

private void btnSil_Click(object sender, EventArgs e)
{
    if (lstOgrenciler.SelectedIndex >= 0)
    {
        DialogResult sonuc = MessageBox.Show("Seçilen öğrenci silinsin mi?", "Silme Onayı", MessageBoxButtons.YesNo);

        if (sonuc == DialogResult.Yes)
        {
            int index = lstOgrenciler.SelectedIndex;
            ogrenciListesi.RemoveAt(index);
            lstOgrenciler.Items.RemoveAt(index);
        }
    }
}

📝 Açıklama:

Kullanıcıdan onay almadan silme işlemi yapılmaz. Bu daha güvenli bir yaklaşımdır.


📌 Örnek 5: Öğrenci Listesini Etiketle Saymak

🎨 Ekstra Eleman: lblToplam

💻 Kod:

private void ListeyiGuncelle()
{
    lstOgrenciler.Items.Clear();
    foreach (var o in ogrenciListesi)
        lstOgrenciler.Items.Add(o);

    lblToplam.Text = $"Toplam Kayıt: {ogrenciListesi.Count}";
}

📝 Açıklama:

Kayıt sayısı her işlem sonrası güncellenerek kullanıcıya bilgi verilir.


✅ Özet:

Bu bölümde öğrenciler:

  • Bir ListBox ile List<Ogrenci> listesini senkronize etmeyi
  • Listeleme ve silme işlemlerini güvenli şekilde yapmayı
  • Kullanıcıya hem görsel hem işlevsel olarak bilgi sunmayı
  • Küçük ama işlevsel bir “kayıt yönetimi” modülü oluşturmayı öğrendiler.

1 Response

  1. Pingback : A'DAN Z'YE NTP - İÇİNDEKİLER - Hasan TANDOĞAN

Leave a Reply