C# C# Windows Form Örnekleri

C# Class ve List Kullanımı Örneği – Randevu Kayıt

Bu makalede C# ile Class ve List kullanımını gösteren basit bir uygulama oluşturacağız. Örneğimizde bir hastane randevu sistemi oluşturacağız.

Uygulamamızda veritabanı kullanmayacağımızı belirterek tasarıma geçelim.

Tasarım kısmı TextBox, Label, DateTimePicker, DataGridView ve Button lardan oluşmaktadır.

Şimdi kodlarımızı oluşturalım.

Randevu.cs isimli Sınıfımızı Solution Explorer penceresini kullanarak aşağıdaki gibi oluşturalım.

Form için Ekle, Sil, Güncelle butonları ile Form yüklendiği zaman çalışacak kodlar ve DataGrid üzerinde tıklanan satıra ait bilgileri ilgili denetimlere aktaracak kodları oluşturalım.

Şimdi kodlarımızı bölüm bölüm açıklayalım.

Bu kod, C# programlama dilinde bir Windows Forms uygulamasında kullanılabilecek bir form yüklenirken gerçekleştirilen işlemleri içeriyor. Kodun içeriğini aşağıda adım adım açıklayacağım:

  1. Form Yüklenirken ComboBox’a Öğelerin Eklenmesi
    • cmbPoliklinik adındaki bir ComboBox’a poliklinik isimlerini ekliyoruz. Bu isimler, polikliniklerin adlarını içeren bir dizi olan poliklinikler dizisinden alınıyor.
  2. DataGridView için Veri Kaynağının Ayarlanması
    • dataGridView1 adında bir DataGridView (veri tablosu) var. Bu DataGridView kontrolü, list adında bir koleksiyonun içeriğini gösterecek.
    • list koleksiyonuna, Randevu sınıfından örnekler ekleniyor. Her bir örnek, randevuyla ilgili bilgileri içeriyor: randevu numarası, hasta adı, telefon numarası, randevu tarihi, durumu (true/false) ve poliklinik bilgisi.
  3. DataGridView’in Veri Kaynağının Ayarlanması
    • dataGridView1.DataSource = list.ToList(); satırı, DataGridView kontrolünün veri kaynağını list koleksiyonuna bağlar. ToList() metodu, koleksiyonun bir kopyasını oluşturur ve DataGridView kontrolü için uygun bir veri yapısı sağlar.

Yukarıdaki kod, DataGridView’in hücrelerine tıkladığınızda, o hücreye ait verileri TextBox’lar, ComboBox ve DateTimePicker gibi kontrol elemanlarına aktaran bir olay işleyicisi (event handler) içerir.

İşleyici, dataGridView1_CellEnter adında bir metod içinde bulunur. Bu metod, DataGridView’in bir hücresine tıkladığınızda tetiklenir. İçeriğini adım adım açıklayalım:

  1. dataGridView1_CellEnter metodunun görevi, DataGridView’in belirli bir hücresine tıklandığında o hücreye ait verileri farklı kontrol elemanlarına atamaktır.
  2. Kodun içinde try-catch bloğu kullanılmış. try bloğu, potansiyel olarak hata oluşturabilecek işlemleri içerir. catch bloğu ise olası hataların ele alındığı kısımdır.
  3. dataGridView1.CurrentRow.Cells["id"].Value.ToString(); gibi kod satırları, DataGridView’deki mevcut satırın belirli bir hücresinden veri alır ve bu veriyi ilgili kontrol elemanına atar.
    • txtId.Text = dataGridView1.CurrentRow.Cells["id"].Value.ToString(); -> DataGridView’deki mevcut satırın “id” isimli hücresinden değeri alır ve txtId adlı TextBox’a atar.
    • txtAdSoyad.Text = dataGridView1.CurrentRow.Cells["ad"].Value.ToString(); -> DataGridView’deki mevcut satırın “ad” isimli hücresinden değeri alır ve txtAdSoyad adlı TextBox’a atar.
    • txtTelefon.Text = dataGridView1.CurrentRow.Cells["telefon"].Value.ToString(); -> DataGridView’deki mevcut satırın “telefon” isimli hücresinden değeri alır ve txtTelefon adlı TextBox’a atar.
    • cmbPoliklinik.Text = dataGridView1.CurrentRow.Cells["poliklinik"].Value.ToString(); -> DataGridView’deki mevcut satırın “poliklinik” isimli hücresinden değeri alır ve cmbPoliklinik adlı ComboBox’a atar.
    • chkSigorta.Checked = (Boolean)dataGridView1.CurrentRow.Cells["sigorta"].Value; -> DataGridView’deki mevcut satırın “sigorta” isimli hücresinden bool değeri alır ve chkSigorta adlı CheckBox’a atar.
    • dtpDogumTarih.Value = (DateTime)dataGridView1.CurrentRow.Cells["tarih"].Value; -> DataGridView’deki mevcut satırın “tarih” isimli hücresinden tarih değeri alır ve dtpDogumTarih adlı DateTimePicker’a atar.

Bu işlev, DataGridView’deki mevcut hücreye girildiğinde bu hücreye ait verileri farklı kontrol elemanlarına aktararak kullanıcıya gösterir. Bu sayede, DataGridView’deki verileri düzenlemek veya görüntülemek amacıyla kullanılabilir.

Bu kod parçası, bir “Ekle” butonuna tıklandığında çalışacak olan olay işleyicisini (event handler) içerir. Bu olay işleyicisi, kullanıcı tarafından doldurulan metin kutuları, onay kutusu ve diğer kontrol elemanlarından alınan bilgilerle yeni bir Randevu öğesi oluşturur ve bu öğeyi bir List<Randevu> koleksiyonuna ekler. Daha sonra, DataGridView’in veri kaynağını bu güncellenmiş liste olarak ayarlar.

İşte kodun adım adım açıklaması:

  1. btnEkle_Click adındaki metod, “Ekle” butonuna tıklandığında çalışır (Click olayı tetiklenir).
  2. Metodun içinde, kullanıcının girdiği bilgileri değişkenlere aktarıyoruz:
    • id, ad, telefon, sigorta, tarih ve poliklinik gibi değişkenler, kullanıcının girdiği verileri ilgili kontrol elemanlarından alır.
  3. Ardından, bu bilgileri kullanarak yeni bir Randevu öğesi oluşturuyoruz:
    • Randevu yeniRandevu = new Randevu(id, ad, telefon, tarih, sigorta, poliklinik); -> Kullanıcıdan alınan bilgilerle yeni bir Randevu öğesi oluşturulur.
  4. Oluşturulan yeni Randevu öğesini list adlı List<Randevu> koleksiyonuna ekliyoruz:
    • list.Add(yeniRandevu); -> Yeni oluşturulan Randevu öğesini list koleksiyonuna ekler.
  5. Son olarak, DataGridView’in veri kaynağını güncellenmiş list koleksiyonu olarak ayarlıyoruz:
    • dataGridView1.DataSource = list.ToList(); -> DataGridView’in veri kaynağını list koleksiyonuna dönüştürülmüş hali olarak ayarlar. Böylece, DataGridView’e yeni eklenen veriler görüntülenir.

Bu kod parçası, kullanıcıdan alınan bilgilerle yeni bir randevu oluşturarak bu bilgileri bir DataGridView’e ekler. Bu işlem, “Ekle” butonuna her tıklanışta gerçekleşir ve DataGridView güncellenmiş verilerle yeniden gösterilir.

Bu C# kod parçası, bir Windows Forms uygulamasında bir butona tıklandığında seçili bir DataGridView satırını silmeyi hedefler. Kod, bir DataGridView kontrolü üzerindeki seçili satırın bir Randevu nesnesi içerip içermediğini kontrol eder ve ardından bu seçili randevuyu listeden kaldırır.

Kodun temel işlevselliği şu şekildedir:

  1. Eğer dataGridView1 üzerinde en az bir satır seçiliyse işleme devam eder.
  2. Seçili satırın DataBoundItem özelliğini kullanarak bir Randevu nesnesini alır.
  3. Aldığı bu Randevu nesnesinin null olup olmadığını kontrol eder.
  4. Eğer Randevu nesnesi null değilse, bir onay mesajı görüntüler ve kullanıcının seçili randevuyu silmek isteyip istemediğini sorar.
  5. Kullanıcı “Evet” derse, list isimli bir koleksiyondan (List<Randevu>) seçili Randevu nesnesini kaldırır ve bir bilgilendirme mesajı gösterir.
  6. Eğer Randevu nesnesi null ise veya listede bulunamazsa, ilgili hatalı durum mesajlarını gösterir.
  7. En son olarak, DataGridView’in veri kaynağını güncellemek için list koleksiyonunu DataGridView’e bağlar.

Burada Randevu türünün nasıl tanımlandığına ve list değişkeninin türünün ne olduğuna dair bir bilgi olmadığından, Randevu ve list türleri kod içinde belirtilmiş olmalıdır. Ayrıca, list koleksiyonunun DataGridView ile senkronize olması sağlanmalıdır, böylece listeden bir öğe silindiğinde DataGridView güncellenir.

Eğer list koleksiyonu BindingList<Randevu> gibi otomatik olarak veri değişikliklerini izleyen bir yapı kullanıyorsa, list.Remove(secilenRandevu); işlemi doğrudan DataGridView’i güncelleyecektir. Ancak, sıradan bir List<Randevu> kullanılıyorsa, dataGridView1.DataSource = list.ToList(); satırı ile DataGridView’in güncellenmesi gerekecektir.

Bu kod parçası, “Güncelle” butonuna tıklandığında seçilen bir satırın verilerini, formdaki metin kutuları, onay kutusu ve diğer kontrol elemanlarından alınan yeni değerlerle günceller.

İşlevi adım adım açıklayalım:

  1. btnGuncelle_Click adındaki metod, “Güncelle” butonuna tıklandığında çalışır (Click olayı tetiklenir).
  2. İlk olarak, seçili bir satırın olup olmadığını kontrol eder:
    • if (dataGridView1.SelectedRows.Count > 0) -> Eğer en az bir satır seçilmişse işlem devam eder.
  3. Seçili satır varsa, bu satırdan ilgili veriyi almak için aşağıdaki adımlar izlenir:
    • DataGridViewRow selectedRow = dataGridView1.SelectedRows[0]; -> DataGridView’de seçilen ilk satırı alır.
    • Randevu secilenRandevu = selectedRow.DataBoundItem as Randevu; -> Seçilen satırın içeriğini Randevu türüne dönüştürür. Eğer dönüşüm başarılıysa, secilenRandevu değişkenine bu veriyi atar.
  4. Eğer seçilen öğe secilenRandevu != null ise, yani seçili öğe bir Randevu türünde ise, yeni değerleri kullanarak seçilen öğenin özelliklerini günceller:
    • Yeni değerleri formdaki metin kutularından, onay kutusundan ve diğer kontrol elemanlarından alır.
    • secilenRandevu.Ad = ad;, secilenRandevu.Telefon = telefon; gibi satırlarla seçilen öğenin ilgili özelliklerini günceller.
  5. DataGridView’i günceller:
    • dataGridView1.DataSource = null; -> DataGridView’in mevcut veri kaynağını temizler.
    • dataGridView1.DataSource = list; -> DataGridView’in veri kaynağını güncellenmiş list koleksiyonu olarak ayarlar. Böylece, DataGridView güncellenmiş verileriyle yeniden gösterilir.

Bu kod parçası, DataGridView’de seçilen bir satırın verilerini formdaki kontrol elemanlarından alınan yeni değerlerle günceller. Bu işlem “Güncelle” butonuna her tıklanışta gerçekleşir.

Yorum yap

Web Tasarım & Programlama sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya Devam Edin