Merhaba değerli Webkolog.net takipçileri, bugünkü yazımızda C# .NET Framework 4 ile Windows Forms uygulamalarında verileri listelemek ve detaylı bir şekilde görüntülemek için sıklıkla kullandığımız ListView kontrolünü yakından inceleyeceğiz. ListView, özellikle Windows Gezgini'ndeki dosya listeleri gibi, verileri farklı görünümlerde (detaylı, ikonlu, listeli) sunma yeteneğiyle öne çıkan çok yönlü bir kontroldür. Gelin, ListView'in temel özelliklerini, farklı görünümlerini, veri ekleme yöntemlerini ve olaylarını birlikte keşfedelim.
ListView Kontrolü Nedir?
ListView kontrolü, bir veri koleksiyonunu farklı düzenlerde (görünümlerde) görüntülemek için kullanılır. Her bir veri öğesi, bir ListViewItem nesnesi olarak temsil edilir. Özellikle "Details" görünümünde, verileri sütunlar halinde düzenleyerek tablo benzeri bir yapı sunar, bu da kullanıcıların verileri daha kolay incelemesini sağlar.
ListView Kontrolünün Temel Özellikleri
ListView kontrolü, verilerin sunumunu ve etkileşimini özelleştirmek için birçok önemli özelliğe sahiptir:
View:ListView'in verileri nasıl görüntüleyeceğini belirler. En yaygın kullanılanıView.Details'tir, bu görünümde sütunlar ve alt öğeler kullanılır. Diğer görünümlerLargeIcon,SmallIcon,ListveTile'dır.Columns:ViewözelliğiDetailsolarak ayarlandığında,ListView'deki sütunları yöneten bir koleksiyondur. Her bir sütun birColumnHeadernesnesi ile temsil edilir.Items:ListView'deki tüm ana öğeleri (ListViewItemnesnelerini) içeren bir koleksiyondur.SelectedItems: Kullanıcı tarafından seçilenListViewItemnesnelerini içeren bir koleksiyondur.SmallImageList:SmallIconveDetailsgörünümlerinde küçük ikonları görüntülemek için kullanılanImageListbileşeni.LargeImageList:LargeIcongörünümünde büyük ikonları görüntülemek için kullanılanImageListbileşeni.CheckBoxes: Eğertrueolarak ayarlanırsa, her öğenin yanında bir onay kutusu (checkbox) görüntülenir.FullRowSelect: Eğertrueolarak ayarlanırsa, bir öğe seçildiğinde tüm satırın seçili görünmesini sağlar.GridLines: Eğertrueolarak ayarlanırsa,Detailsgörünümünde satır ve sütunlar arasında kılavuz çizgileri görüntülenir.MultiSelect: Kullanıcının birden fazla öğe seçmesine izin verilip verilmediğini belirler (trueveyafalse).Sorting: Öğelerin nasıl sıralanacağını belirler (None,Ascending,Descending).
ListViewItem ve ListViewSubItem Sınıfları
ListView'deki her bir satır, bir ListViewItem nesnesi ile temsil edilir. Bir ListViewItem'ın ilk sütundaki verisi, öğenin Text özelliğidir. Diğer sütunlardaki veriler ise ListViewItem'ın SubItems koleksiyonu aracılığıyla eklenen ListViewSubItem nesneleriyle temsil edilir.
ListView Kullanım Senaryoları
1. Sütun Ekleme (Details Görünümü İçin)
ListView'i Details görünümünde kullanmak için öncelikle sütun başlıklarını (ColumnHeader) tanımlamamız gerekir. Bu sütunlar, verilerin hangi başlıklar altında görüntüleneceğini belirler.
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir ListView (listView1) eklenmiş olduğunu varsayalım
this.listView1.View = View.Details; // Görünümü Detaylar olarak ayarla
this.listView1.GridLines = true; // Kılavuz çizgilerini göster
this.listView1.FullRowSelect = true; // Tüm satırı seçilebilir yap
// Sütun başlıklarını ekle
this.listView1.Columns.Add("Ürün Adı", 150); // Başlık, Genişlik
this.listView1.Columns.Add("Fiyat", 80, HorizontalAlignment.Right); // Başlık, Genişlik, Hizalama
this.listView1.Columns.Add("Stok Miktarı", 100, HorizontalAlignment.Center);
}
}
2. Öğeleri Ekleme (ListViewItem ve ListViewSubItem)
Sütunlar tanımlandıktan sonra, ListViewItem ve ListViewSubItem kullanarak verilere ekleyebiliriz.
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Yukarıdaki gibi sütunların tanımlandığını varsayalım
// Yeni bir ListViewItem oluştur (ilk sütun için metin)
ListViewItem item1 = new ListViewItem("Laptop");
// Alt öğeleri ekle (diğer sütunlar için)
item1.SubItems.Add("1200 TL");
item1.SubItems.Add("50 Adet");
this.listView1.Items.Add(item1); // ListView'e öğeyi ekle
// Başka bir öğe ekle
ListViewItem item2 = new ListViewItem("Mouse");
item2.SubItems.Add("50 TL");
item2.SubItems.Add("200 Adet");
this.listView1.Items.Add(item2);
// Kısa yolla öğe ekleme
string[] row3 = { "Klavye", "150 TL", "100 Adet" };
ListViewItem item3 = new ListViewItem(row3);
this.listView1.Items.Add(item3);
}
}
3. Farklı Görünümler (View Özelliği)
ListView, verileri farklı şekillerde görüntüleyebilir. Görünümü değiştirmek için View özelliğini kullanırız.
View.LargeIcon: Her öğeyi büyük bir ikon ve metinle görüntüler.View.SmallIcon: Her öğeyi küçük bir ikon ve metinle görüntüler.View.List: Öğeleri tek bir sütunda, küçük ikonlar ve metinle liste halinde görüntüler.View.Tile: Her öğeyi büyük bir kutu içinde, ikon ve birden fazla alt öğe metniyle görüntüler (daha zengin bir görünüm).
using System.Windows.Forms;
using System.Drawing; // ImageList için
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Tasarımcıda bir ListView (listView1), bir LargeImageList (largeImageList1)
// ve bir SmallImageList (smallImageList1) eklenmiş olduğunu varsayalım.
// ImageList'lere ikonlar eklemiş olalım (örneğin, dosya ikonları).
// ImageList'leri ListView'e bağla
this.listView1.LargeImageList = this.largeImageList1;
this.listView1.SmallImageList = this.smallImageList1;
// Örnek öğeler ekleyelim (ikon indeksleri ile)
ListViewItem fileItem = new ListViewItem("Belge.docx", 0); // Metin, ikon indeksi
fileItem.SubItems.Add("15 KB"); // Alt öğeler (Details görünümü için)
this.listView1.Items.Add(fileItem);
ListViewItem folderItem = new ListViewItem("Resimler", 1);
folderItem.SubItems.Add("2 MB");
this.listView1.Items.Add(folderItem);
// Görünümü değiştirme butonları olduğunu varsayalım
// buttonLargeIcon, buttonSmallIcon, buttonDetails, buttonList, buttonTile
this.buttonLargeIcon.Click += (s, e) => this.listView1.View = View.LargeIcon;
this.buttonSmallIcon.Click += (s, e) => this.listView1.View = View.SmallIcon;
this.buttonDetails.Click += (s, e) => this.listView1.View = View.Details;
this.buttonList.Click += (s, e) => this.listView1.View = View.List;
this.buttonTile.Click += (s, e) => this.listView1.View = View.Tile;
}
}
4. Seçim ve Olaylar
ListView, kullanıcı etkileşimlerine tepki vermek için çeşitli olaylar sunar:
SelectedIndexChanged: Seçilen öğe değiştiğinde tetiklenir.ItemActivate: Bir öğe çift tıklandığında veya Enter tuşuna basıldığında tetiklenir.
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// listView1'in öğelerle doldurulduğunu varsayalım
this.listView1.SelectedIndexChanged += new EventHandler(listView1_SelectedIndexChanged);
this.listView1.ItemActivate += new EventHandler(listView1_ItemActivate);
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count > 0)
{
// Seçilen ilk öğenin metnini göster
MessageBox.Show("Seçilen Ürün: " + this.listView1.SelectedItems[0].Text);
}
}
private void listView1_ItemActivate(object sender, EventArgs e)
{
if (this.listView1.SelectedItems.Count > 0)
{
// Çift tıklanan öğenin metnini göster
MessageBox.Show("Açılan Ürün: " + this.listView1.SelectedItems[0].Text);
// Burada seçilen öğeyle ilgili bir işlem yapılabilir (örneğin, detay penceresi açma)
}
}
}
---
Evet sevgili Webkolog.net okurları, bu yazımızda C# .NET Framework 4 ile ListView kontrolünün temel özelliklerini, farklı görünümlerini, veri ekleme yöntemlerini ve olaylarını detaylı bir şekilde inceledik. ListView, uygulamalarınızda veri listelerini görsel olarak zengin ve etkileşimli bir şekilde sunmak için güçlü bir araçtır. Dosya gezginleri, ürün listeleri veya herhangi bir tablo benzeri veri sunumu için idealdir. Umarım bu rehber, C# .NET Framework 4 ile uygulamalar geliştirirken size yardımcı olur. Bir sonraki yazımda, C# dilinin diğer önemli yapı taşlarını keşfetmeye devam edeceğiz. Webkolog.net'i takipte kalın!
Hepinize listelerle dolu ve başarılı geliştirme süreçleri dilerim!







0 yorum:
Yorum Gönder