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
,List
veTile
'dır.Columns
:View
özelliğiDetails
olarak ayarlandığında,ListView
'deki sütunları yöneten bir koleksiyondur. Her bir sütun birColumnHeader
nesnesi ile temsil edilir.Items
:ListView
'deki tüm ana öğeleri (ListViewItem
nesnelerini) içeren bir koleksiyondur.SelectedItems
: Kullanıcı tarafından seçilenListViewItem
nesnelerini içeren bir koleksiyondur.SmallImageList
:SmallIcon
veDetails
görünümlerinde küçük ikonları görüntülemek için kullanılanImageList
bileşeni.LargeImageList
:LargeIcon
görünümünde büyük ikonları görüntülemek için kullanılanImageList
bileşeni.CheckBoxes
: Eğertrue
olarak ayarlanırsa, her öğenin yanında bir onay kutusu (checkbox) görüntülenir.FullRowSelect
: Eğertrue
olarak ayarlanırsa, bir öğe seçildiğinde tüm satırın seçili görünmesini sağlar.GridLines
: Eğertrue
olarak ayarlanırsa,Details
gö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 (true
veyafalse
).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