
Listview listeleme amacıyla kullanılan bir form kontrolüdür. ASP.NET ortamında kullanılabileceği gibi Windows uygulamalarında da kullanılmaktadır. Örneğin klasörlerimizi görüntülediğimiz pencereler birer Listview kontrolüdür. Bu makalemizde Windows uygulamalarında nasıl kullanıldığına bakacağız: Projemize iki adet ImageList ekliyoruz. Bunlardan birincisi içerisine yüklenen resimleri büyük ikonlar halinde görmemiz için diğeri ise küçük ikonlar halinde görüntülememiz için kullanılacak. Imagelist 'in properties ekranından İmages bölümüne geliyoruz ve buraya kullanılacak resimleri ekliyoruz.
Yazan: Nuran Bahar

Listview in LargeImageList özelliğini ImageList1 yapıyoruz SmallImageList özelliğini de ImageList2 yapıyoruz. Daha sonra Listview in Items özelliğine
tıklıyoruz.

Burada Listview elemanlarımızın genel özelliklerini (text, font, ilgili resim) belirliyoruz. Bu ayarlardan sonra formumuz şu şekli alıyor:

Burdaseçili olan LargeIcon şeklidir. Windowsta gördüğümüz listeleme şekillerinden biri de detaylı listelemedir. Şimdi de bunun nasıl oluşturulduğunu görelim: Listview in özelliklerinden Columns u seçiyoruz ve karşımıza gelen ekrandan ekleyeceğimiz kolonları ayarlıyoruz. Bu projede 2 tane kolon oluşturdum Boyut ve Oluşturulma Tarihi olarak. :

Kolonların ilki direk listemizdeki eklediğimiz items lerden oluşmaktadır. Diğer kolonlardaki bilgileri kodsuz oluşturmak için Items ekranındaki ilgili dizine ait SubItems özelliğini kullanıyoruz. Sonuç olarak da detaylı listeleme seçildiğinde aşağıdaki ekran oluşmaktadır: Bu kolonlardaki altbilgileri kodla oluşturmak istersek formumuzu bu şekilde düzenliyoruz. Buton kodu da aşağıdaki gibidir:
private void button1_Click_1(object sender, EventArgs e)
{
int Numara; ListViewItem yeni = listView1.SelectedItems[0];
Numara = yeni.Index;
try
{
listView1.Items[Numara].SubItems.Add(textBox1.Text)
}
catch
{ }
}
Eğer önceden düzenlenmiş altbilgileri değiştirmek istersek de kod bloğumuz şu şekilde olacaktır:
private void button1_Click_1(object sender, EventArgs e)
{
int Numara;
ListViewItem yeni = listView1.SelectedItems[0];
Numara = yeni.Index;
try
{
listView1.Items[Numara].SubItems[1].Text= textBox1.Text;
}
catch
{ }
}
Şimdi de diğer özelliklere göz atalım:
Clear: ListView içeriğinin tamamen silinmesini sağlar.
RemoveAt: Parantez içinde belirtilen index numaralı satırı siler. Aşağıdaki kodda buna bir örnek verelim:

Seçili olan Listview öğesini silen buton kodu şu şekilde olacaktır:
private void button2_Click(object sender, EventArgs e)
{
int silinecek;
ListViewItem yeni = listView1.SelectedItems[0];
Numara = yeni.Index;
listView1.Items.RemoveAt(silinecek); //remove metodu ile seçilmiş satırı silmiş olduk.
}

Görüldüğü gibi Müzik adlı öğe silinmiştir.
CheckBoxes: Eğer bu özelliğe true değeri aktarılırsa satırların başına checkBox lar eklenecektir.
private void Form1_Load(object sender, EventArgs e)
{
listView1.CheckBoxes = true;
}

GridLines: Eğer bu özellik formLoad da true olarak belirtilirse grid çizgileri kullanıcı tarafından görülebilir olacaktır.
private void Form1_Load(object sender, EventArgs e)
{
listView1.CheckBoxes = true;
listView1.GridLines = true;
}
MultiSelect: Shift-Ctrl-Alt tuşlarını kullanarak çoklu seçim yapmaya yarayan bir özelliktir. True değerinin verilmiş olması yeterlidir.
private void Form1_Load(object sender, EventArgs e)
{
listView1.CheckBoxes = true;
listView1.GridLines = true;
listView1.MultiSelect = true;
}
Bu iki özellik(MultiSelect ve GridLines) sonucu görüntü şu şekilde olacaktır:

SelectedItems Şimdi formumuza bir ListBox ekleyelim ve bu özelliğe değinelim:
private void button3_Click(object sender, EventArgs e)
{
foreach (ListViewItem eleman in listView1.SelectedItems )
{
listBox1.Items.Add(eleman.Text);
}
}
//Burada seçili olan tüm elemanlar bir dizi oluşturmaktadır ve biz de bu diziyi foreach döngüsü ile birlikte Listbox'a aktarmış olduk.

Bu özelliği kullanırken ayrıca MultiSelect özelliğini true yaptığımızı ve böylece çoklu seçim yapabildiğimizi de unutmayalım. CheckedItems: Bu özellik ise seçili comboBox lara ait dizine ulaşmamızı sağlayan özelliktir. SelectedItems ile karıştırılmaması gerekir. Bu özelliği kullanarak Listboxa aktarma işlemini de şu şekilde yapabiliriz:
private void button3_Click(object sender, EventArgs e)
{
foreach (ListViewItem eleman in listView1.CheckedItems )
{
listBox1.Items.Add(eleman.SubItems[0].Text);
}
}
Kodla Sütun Eklemek Listview e kodla müdahale etmek için yeni bir form açıp bir listview ekledik. Daha sonra aşağıdaki işlemleri form un Load event inde gerçekleştiriyoruz:
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
ColumnHeader sutun = new ColumnHeader(); // ilk sütunu oluşturduk ve özelliklerini belirttik.
sutun.Text = "YAZILIM";
sutun.TextAlign = HorizontalAlignment.Left;
listView1.Columns.Add(sutun); //sütunumuzu Listview e eklemiş olduk
ColumnHeader sutun2 = new ColumnHeader(); //2.sütunu oluşturduk ve özelliklerini belirttik.
sutun2.Text= "BİLGİSAYAR";
sutun2.TextAlign = HorizontalAlignment.Left;
listView1.Columns.Add(sutun2); //2.sütunumuzu Listview e eklemiş olduk.
}
Bu kodun çıktısı aşağıdaki şekilde olacaktır:

Bu makalede Listview in temel özelliklerini görmüş olduk. Diğer makalelerde görüşmek dileğiyle….
NURAN BAHAR

Güzel makale. İşime yaradıi elinize sağlık