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
DateTimenesnesi. - 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:Filmsınıfından nesneleri içeren birBindingListoluş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 olanfilm1oluş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 olanfilm2oluş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 olanfilm3oluş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 olanfilm4oluş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,filmlerBindingList’ine eklenir. Bu sayede,filmlerkoleksiyonu, DataGridView kontrolüne bağlandığında otomatik olarak güncellenecektir.dataGridView1.DataSource = filmler;:DataGridViewkontrolü,filmlerkoleksiyonunu veri kaynağı olarak kullanır. Bu sayedeDataGridViewotomatik 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.txtIdadlı bir TextBox kontrolü üzerinden alınan metin, tamsayıya dönüştürülerekiddeğişkenine atanır.string ad = txtAd.Text;: Film adını alır. Kullanıcının girdiği metnitxtAdadlı TextBox kontrolünden alır veaddeğişkenine atar.int sure = Convert.ToInt32(txtSure.Text);: Film süresini alır.txtSureadlı TextBox kontrolünden alınan metni tamsayıya dönüştürereksuredeğişkenine atar.DateTime tarih = dtTarih.Value;: Film izleme tarihini alır.dtTarihadlı DateTimePicker kontrolünden alınan değeritarihdeğişkenine atar.string tur = cmbTur.Text;: Film türünü alır.cmbTuradlı ComboBox kontrolünden seçilen metniturdeğişkenine atar.int puan = tbBegen.Value;: Film beğeni puanını alır.tbBegenadlı TrackBar kontrolünden alınan değeripuandeğişkenine atar.
- Film Nesnesi Oluşturma:
Film film = new Film(id, ad, sure, tarih, tur, puan);: Yukarıda alınan bilgilerle yeni birFilmnesnesi oluşturulur.
- Film Nesnesini Listeye Ekleme:
filmler.Add(film);: OluşturulanFilmnesnesi,filmlerBindingList’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ı olanFilmnesnesi 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ı olanFilmnesnesi 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ı olanFilmnesnesi 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