Görsel Programlama - ListView Kullanımı (C#)
ListView, belirlediğinmiz sütunları gösterip satır satır bilgi listeleyebileceğimiz bir form bileşenidir. Çalışma mantığı ListBox ile hemen hemen aynıdır. Tek farkı, bir tek sütun yerine istediğimiz kadar excell tarzı hücre belirleyebiliyor olmamız. Bununla beraber liste elemanlarına ikon ya da CheckBox ekleme gibi özellikleri de var. Yani CheckedListBox gibi de kullanılabilir.
ListView kullanmanın ilk adımı sütunları oluşturup boyutlarını belirlemek. Sütunları eklemeden önce görünebilmesi için görünüm modunu "detaylar" olarak ayarlayacağız.
private void Form1_Load(object sender, EventArgs e) { listView1.View = View.Details; listView1.FullRowSelect = true; listView1.Columns.Add("Ad", 150); listView1.Columns.Add("Soyad", 150); listView1.Columns.Add("Meslek", 150); }
Bir hücre seçildiğinde tüm satırın seçili hale gelmesi için FullRowSelect
özelliğini aktif yaptık.
Yeni Kayıt Ekleme
Kayıt eklemek için TextBox'lardaki bilgileri bir diziye atıp o diziden ListViewItem
-liste elemanı- üretip onu da listView1
içine ekledik.
private void button1_Click(object sender, EventArgs e) { string ad = textBox1.Text; string soyad = textBox2.Text; string meslek = textBox3.Text; string[] bilgiler = { ad, soyad, meslek }; listView1.Items.Add(new ListViewItem(bilgiler)); textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); }
Son olarak da Clear
ile TextBox
içlerine yazılanları temizledik.
Tüm Kayıtları Temizleme
Elemanları silmek için Items
koleksiyonundaki Clear
methodunu kullandık.
private void button3_Click(object sender, EventArgs e) { listView1.Items.Clear(); }
Kayıt Sayısını Öğrenme
Yine Items
koleksiyonundaki Count
özelliği kayıtlı liste elemanı sayısını verir.
private void button4_Click(object sender, EventArgs e) { int kayitSayisi = listView1.Items.Count; MessageBox.Show(kayitSayisi + " adet kayıt bilgisi var."); }
Seçili Elemanı Silme
ListView içindeki SelectedItems
koleksiyonu içinde o an seçili olan elemanları tutar. Bir döngü yardımıyla koleksiyonu dolaşıp tüm elemanları tek tek silebiliriz.
private void button2_Click(object sender, EventArgs e) { int secimSayisi = listView1.SelectedItems.Count; foreach (ListViewItem bilgi in listView1.SelectedItems) { bilgi.Remove(); } MessageBox.Show(secimSayisi + " adet kayıt silindi."); }
Sadece işaretli olanları silme
Eğer sadece check atılmış olan elemanları silmek isterseniz önce Form1_Load
olayında CheckBoxes
özelliğini aktif yapmalısınız.
listView1.CheckBoxes = true;
Ardından tıpkı seçili elemanlarda olduğu gibi CheckedItems
koleksiyonundaki elemanları silmelisiniz.
foreach (ListViewItem bilgi in listView1.CheckedItems) { bilgi .Remove(); }
Kayda Resim Ekleme
Resim ekleyebilmek için önce bir ImageList
oluşturup onu listenin SmallImageList
özelliğine atamalısınız.
private void Form1_Load(object sender, EventArgs e) { ImageList imageList1 = new ImageList(); // Resimleri ekle imageList1.Images.Add("ikon1", Image.FromFile("C:\\Resimler\\ikon1.png")); imageList1.Images.Add("ikon2", Image.FromFile("C:\\Resimler\\ikon2.png")); imageList1.Images.Add("ikon3", Image.FromFile("C:\\Resimler\\ikon3.png")); listView1.SmallImageList = imageList1; }
Daha sonra yeni eleman eklerden ImageKey
özelliğini ImageList
içinde belirlediğiniz resmin adı yapmalısınız.
private void button1_Click(object sender, EventArgs e) { string ad = textBox1.Text; string soyad = textBox2.Text; string meslek = textBox3.Text; string[] bilgiler = { ad, soyad, meslek }; ListViewItem eleman = new ListViewItem(bilgiler); eleman.ImageKey = "ikon1"; listView1.Items.Add(eleman); }
Örnek projeyi indirmek isterseniz ListViewExample1.rar linkine tıklayabilirsiniz.