C# programlama dilini kullanarak geliştirdiğimiz bu uygulama, film bilgilerini düzenli bir şekilde yönetmek ve kullanıcıların kolayca eklemek, güncellemek, görüntülemek ve silmek için tasarlanmıştır.
Film sınıfını içeren ve DataGridView kontrolü üzerinden etkileşimli bir kullanıcı arayüzü sunan bu uygulama, nesne yönelimli programlama prensiplerini kullanarak verilerin tutulmasını sağlar. Film verilerini içeren BindingList, kullanıcının filmler arasında hızlıca gezinmesini ve verileri güncellemesini mümkün kılar.
Form Tasarımı
Film.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FilmArşiv { internal class Film { public int Id { get; set; } public string Ad { get; set; } public int Sure { get; set; } public DateTime IzlemeTarih { get; set; } public string Tur { get; set; } public int BegenPuan { get; set; } //Kurucu metot public Film(int id,string ad, int sure,DateTime tarih, string tur, int puan) { Id = id; Ad = ad; Sure = sure; IzlemeTarih = tarih; Tur = tur; BegenPuan = puan; } } } |
Film Sınıfı:
Film
sınıfı, bir film nesnesini temsil eden özellikleri içerir. Bu özellikler, bir film hakkındaki temel bilgileri depolar. İlgili özellikler şunlardır:
- Id (get ve set yöntemleri ile erişilebilir): Film ID’sini temsil eder. Bu özellik, bir filmi diğerlerinden ayırt etmek için benzersiz bir tanımlayıcı sağlar.
- Ad (get ve set yöntemleri ile erişilebilir): Film adını temsil eder. Bu özellik, filmin ismini içerir.
- Sure (get ve set yöntemleri ile erişilebilir): Film süresini temsil eder. Bu özellik, filmi ne kadar süreyle izleyeceğimizi belirtir.
- IzlemeTarih (get ve set yöntemleri ile erişilebilir): Film izleme tarihini temsil eder. Bu özellik, filmi ne zaman izlediğimizi kaydetmek için kullanılır.
- Tur (get ve set yöntemleri ile erişilebilir): Film türünü temsil eder. Bu özellik, filmi bir kategoriye yerleştirmemize olanak tanır.
- BegenPuan (get ve set yöntemleri ile erişilebilir): Film beğeni puanını temsil eder. Bu özellik, kullanıcıların filmlere verdikleri puanı saklar.
Film Kurucu Metodu:
Film
sınıfının kurucu metodu, bir film nesnesi oluşturulduğunda çağrılır. Bu metot, film nesnesinin özelliklerini başlatır. Kurucu metot içindeki parametreler, bir film nesnesini oluştururken sağlanması gereken değerleri temsil eder. İlgili parametreler şunlardır:
- id: Film ID’sini belirten bir tamsayı.
- ad: Film adını belirten bir dize.
- sure: Film süresini belirten bir tamsayı.
- tarih: Film izleme tarihini belirten bir
DateTime
nesnesi. - tur: Film türünü belirten bir dize.
- puan: Film beğeni puanını belirten bir tamsayı.
Kurucu metot, bu parametreleri kullanarak Film
nesnesinin özelliklerini başlatır, böylece oluşturulan nesne, belirtilen filmle ilgili bilgileri içerir.
BindingList Oluşturma ve Form_Load
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | BindingList<Film> filmler = new BindingList<Film>(); private void Form1_Load(object sender, EventArgs e) { Film film1 = new Film(1, "Yeşil Yol", 189, new DateTime(2023, 10, 05), "Dram", 9); Film film2 = new Film(2, "Kabadayı", 140, new DateTime(2020, 05, 14), "Aksiyon", 8); Film film3 = new Film(3, "Esaretin Bedeli",142, new DateTime(2019, 11, 11), "Dram", 10); Film film4 = new Film(4, "Batman Başlıyor", 140, new DateTime(2022, 12, 10), "Aksiyon",5); filmler.Add(film1); filmler.Add(film2); filmler.Add(film3); filmler.Add(film4); dataGridView1.DataSource = filmler; } |
Bu koddaki işlemleri açıklayalım:
BindingList<Film> filmler
:Film
sınıfından nesneleri içeren birBindingList
oluşturuluyor.BindingList
, koleksiyon içindeki öğelerde yapılan değişiklikleri otomatik olarak algılayan ve bu değişiklikleri veri bağlaması üzerinde yansıtan bir koleksiyon türüdür.Film film1 = new Film(1, "Yeşil Yol", 189, new DateTime(2023, 10, 05), "Dram", 9);
: Birinci film nesnesi olanfilm1
oluşturuluyor. Bu film “Yeşil Yol” adında, 189 dakika süresinde, 2023-10-05 tarihinde izlenmiş, “Dram” türünde ve 9 beğeni puanına sahiptir.Film film2 = new Film(2, "Kabadayı", 140, new DateTime(2020, 05, 14), "Aksiyon", 8);
: İkinci film nesnesi olanfilm2
oluşturuluyor. Bu film “Kabadayı” adında, 140 dakika süresinde, 2020-05-14 tarihinde izlenmiş, “Aksiyon” türünde ve 8 beğeni puanına sahiptir.Film film3 = new Film(3, "Esaretin Bedeli",142, new DateTime(2019, 11, 11), "Dram", 10);
: Üçüncü film nesnesi olanfilm3
oluşturuluyor. Bu film “Esaretin Bedeli” adında, 142 dakika süresinde, 2019-11-11 tarihinde izlenmiş, “Dram” türünde ve 10 beğeni puanına sahiptir.Film film4 = new Film(4, "Batman Başlıyor", 140, new DateTime(2022, 12, 10), "Aksiyon",5);
: Dördüncü film nesnesi olanfilm4
oluşturuluyor. Bu film “Batman Başlıyor” adında, 140 dakika süresinde, 2022-12-10 tarihinde izlenmiş, “Aksiyon” türünde ve 5 beğeni puanına sahiptir.filmler.Add(film1); filmler.Add(film2); filmler.Add(film3); filmler.Add(film4);
: Oluşturulan film nesneleri,filmler
BindingList’ine eklenir. Bu sayede,filmler
koleksiyonu, DataGridView kontrolüne bağlandığında otomatik olarak güncellenecektir.dataGridView1.DataSource = filmler;
:DataGridView
kontrolü,filmler
koleksiyonunu veri kaynağı olarak kullanır. Bu sayedeDataGridView
otomatik olarak film verilerini görüntüler.
Yukarıdaki işlemler, form yüklendiğinde (Form1_Load
olayı gerçekleştiğinde) çalışır ve belirtilen filmleri içeren bir BindingList’i DataGridView kontrolüne bağlar. Bu, filmleri göstermek ve DataGridView üzerinde işlemler yapmak için kullanışlı bir temel oluşturur.
Ekle Butonu Olayı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | private void btnEkle_Click(object sender, EventArgs e) { int id = Convert.ToInt32(txtId.Text); string ad = txtAd.Text; int sure = Convert.ToInt32(txtSure.Text); DateTime tarih = dtTarih.Value; string tur = cmbTur.Text; int puan = tbBegen.Value; Film film = new Film(id, ad, sure, tarih, tur, puan); filmler.Add(film); dataGridView1.Refresh(); } |
Bu kod bloğu, kullanıcının bir film eklemek amacıyla butona tıkladığında gerçekleşen olayları içerir. İşlemleri adım adım açıklayalım:
- Kullanıcıdan Giriş Alma:
int id = Convert.ToInt32(txtId.Text);
: Kullanıcının girdiği film ID’sini alır.txtId
adlı bir TextBox kontrolü üzerinden alınan metin, tamsayıya dönüştürülerekid
değişkenine atanır.string ad = txtAd.Text;
: Film adını alır. Kullanıcının girdiği metnitxtAd
adlı TextBox kontrolünden alır vead
değişkenine atar.int sure = Convert.ToInt32(txtSure.Text);
: Film süresini alır.txtSure
adlı TextBox kontrolünden alınan metni tamsayıya dönüştürereksure
değişkenine atar.DateTime tarih = dtTarih.Value;
: Film izleme tarihini alır.dtTarih
adlı DateTimePicker kontrolünden alınan değeritarih
değişkenine atar.string tur = cmbTur.Text;
: Film türünü alır.cmbTur
adlı ComboBox kontrolünden seçilen metnitur
değişkenine atar.int puan = tbBegen.Value;
: Film beğeni puanını alır.tbBegen
adlı TrackBar kontrolünden alınan değeripuan
değişkenine atar.
- Film Nesnesi Oluşturma:
Film film = new Film(id, ad, sure, tarih, tur, puan);
: Yukarıda alınan bilgilerle yeni birFilm
nesnesi oluşturulur.
- Film Nesnesini Listeye Ekleme:
filmler.Add(film);
: OluşturulanFilm
nesnesi,filmler
BindingList’ine eklenir. Bu sayede DataGridView otomatik olarak güncellenir.
- DataGridView’yi Yenileme:
dataGridView1.Refresh();
: DataGridView kontrolünü yeniler. Bu, ekrandaki verileri günceller ve yeni eklenen filmi görüntüler.
Bu metodun temel amacı, kullanıcının girdiği bilgilerle bir Film
nesnesi oluşturup, bu nesneyi filmler
koleksiyonuna ekleyerek DataGridView üzerinde güncellemektir.
DataGridView Seçim Olayı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private void dataGridView1_SelectionChanged(object sender, EventArgs e) { if(dataGridView1.SelectedRows.Count > 0) { Film film = (Film)dataGridView1.SelectedRows[0].DataBoundItem; txtId.Text = film.Id.ToString(); txtAd.Text = film.Ad; txtSure.Text = film.Sure.ToString(); dtTarih.Value = film.IzlemeTarih; cmbTur.Text = film.Tur; tbBegen.Value = film.BegenPuan; } } |
Bu kod parçası, bir DataGridView
kontrolünde kullanıcının bir satır seçtiğinde çalışan bir olayı işler. İşlemleri şu şekilde özetleyebiliriz:
- Satır Seçimi Kontrolü:
- Kullanıcı bir satır seçmişse (
SelectedRows.Count > 0
), aşağıdaki işlemler gerçekleştirilir.
- Kullanıcı bir satır seçmişse (
- Seçili Film Nesnesini Alma:
- Seçilen satırın içinde bulunan
DataBoundItem
özelliği kullanılarak, seçilen satıra bağlı olanFilm
nesnesi alınır.
- Seçilen satırın içinde bulunan
- Form Kontrollerini Güncelleme:
- Seçilen film nesnesinin özellikleri, form üzerindeki ilgili kontrol değerlerine atanır. Bu sayede, kullanıcı seçili filmle ilgili bilgileri form üzerinde görüntüleyebilir veya düzenleyebilir.
Bu kod parçası, kullanıcının DataGridView’den bir film seçmesi durumunda, bu seçilen filmin bilgilerini ilgili form kontrol elemanlarına aktararak kullanıcı etkileşimine olanak tanır.
Güncelle Butonu Olayı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | private void btnGuncelle_Click(object sender, EventArgs e) { if(dataGridView1.SelectedRows.Count >0) { Film film = (Film)dataGridView1.SelectedRows[0].DataBoundItem; film.Ad = txtAd.Text; film.Sure = Convert.ToInt32(txtSure.Text); film.Tur = cmbTur.Text; film.IzlemeTarih = dtTarih.Value; film.BegenPuan = tbBegen.Value; dataGridView1.Refresh(); } } |
Bu kod parçası, kullanıcının DataGridView üzerinde seçili bir filmi güncellemesi için tasarlanmış bir olayı işler. İşlemleri şu şekilde özetleyebilirim:
- Seçili Film Kontrolü:
- Kullanıcı bir film seçmişse (
SelectedRows.Count > 0
), aşağıdaki işlemler gerçekleştirilir.
- Kullanıcı bir film seçmişse (
- Seçili Film Nesnesini Alma:
- Seçilen satırın içinde bulunan
DataBoundItem
özelliği kullanılarak, seçilen satıra bağlı olanFilm
nesnesi alınır.
- Seçilen satırın içinde bulunan
- Film Bilgilerini Güncelleme:
- Seçili film nesnesinin özellikleri, form üzerindeki güncellenmiş kontrol değerleri ile güncellenir.
- DataGridView’i Yenileme:
- DataGridView kontrolü yenilenir. Bu, güncellenmiş verileri gösterir.
Bu kod parçası, kullanıcının seçili bir filmi form üzerindeki kontrollerle güncellemesini sağlamaktadır.
Sil Butonu Olayı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | private void btnSil_Click(object sender, EventArgs e) { if(dataGridView1.SelectedRows.Count > 0) { Film film = (Film)dataGridView1.SelectedRows[0].DataBoundItem; DialogResult sonuc = MessageBox.Show("Filmi Kaldır", film.Ad,MessageBoxButtons.YesNo,MessageBoxIcon.Error); if(sonuc == DialogResult.Yes) { filmler.Remove(film); dataGridView1.Refresh(); } } } |
Bu kod parçası, kullanıcının DataGridView üzerinde seçili bir filmi silmesi için tasarlanmış bir olayı işler. İşlemleri şu şekilde özetleyebilirim:
- Seçili Film Kontrolü:
- Kullanıcı bir film seçmişse (
SelectedRows.Count > 0
), aşağıdaki işlemler gerçekleştirilir.
- Kullanıcı bir film seçmişse (
- Seçili Film Nesnesini Alma:
- Seçilen satırın içinde bulunan
DataBoundItem
özelliği kullanılarak, seçilen satıra bağlı olanFilm
nesnesi alınır.
- Seçilen satırın içinde bulunan
- Silme İşlemini Onaylama:
- Kullanıcıya, seçilen filmin silinip silinmeyeceğini sormak için bir iletişim kutusu görüntülenir.
- Silme İşlemi:
- Kullanıcı “Evet” seçeneğini seçerse, seçilen film koleksiyondan kaldırılır ve DataGridView güncellenir. Bu, silinen filmi göstermeyi günceller.
Bu kod parçası, kullanıcının seçili bir filmi silmesini sağlamak için gerekli kontrolleri ve işlemleri içerir.
Sonuç
Bu C# uygulaması, Film sınıfı üzerine inşa edilmiş ve DataGridView kontrolü ile desteklenmiş bir film arşivleme sistemidir. Kullanıcılar, arayüz üzerinden film ekleyebilir, bilgilerini güncelleyebilir, silme işlemleri gerçekleştirebilir ve film listesini görüntüleyebilir.
Nesne yönelimli programlama ile tasarlanmış olan bu uygulama, kullanıcı dostu bir deneyim sunarak film bilgilerinin etkili bir şekilde yönetilmesini amaçlar.
Yorum Yap