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.

Görsel Programlama - ListView Kullanımı (C#)
Örnek ListView kullanımı. Örnekler bunun üzerinden gidecek.

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.