Giriş
ListView binding bir bileşen değil, kendisine verilen bilgisinin kopyasını alıyor gibi düşünülebilir. ListBox'tan daha gelişmiş özelliklere sahip. Bu sınıfla çalışırken barındırdığı iki sınıfı daha bilmek lazım. Bunlar ListViewItem ve ListViewSubItem sınıfları
View Tipi
ListView bileşeninin sağ üst köşesindeki küçük oka tıklanarak "View" tipi değiştirilebilir. 4 tane view tipi sunuluyor. Bunlar iconview, small icon-view, list-view, details-view. Ben hep "Details" seçeneğini kullandım.
BeginEdit metodu
LabelEdit alanı true yapılara liste düzenlenebilir. Düzenleme işlemini kodla başlatmak için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Yeni bir satır nesnesi eklemek için şöyle yaparız. Diğer sütunlara yazmak için ListViewItem sınıfının SubItems listesi kullanılır.
ListView binding bir bileşen değil, kendisine verilen bilgisinin kopyasını alıyor gibi düşünülebilir. ListBox'tan daha gelişmiş özelliklere sahip. Bu sınıfla çalışırken barındırdığı iki sınıfı daha bilmek lazım. Bunlar ListViewItem ve ListViewSubItem sınıfları
View Tipi
ListView bileşeninin sağ üst köşesindeki küçük oka tıklanarak "View" tipi değiştirilebilir. 4 tane view tipi sunuluyor. Bunlar iconview, small icon-view, list-view, details-view. Ben hep "Details" seçeneğini kullandım.
BeginEdit metodu
LabelEdit alanı true yapılara liste düzenlenebilir. Düzenleme işlemini kodla başlatmak için şöyle yaparız.
listView1.SelectedItems[0].BeginEdit();
Bu kod sonucunda bir TextBox yaratılır. Bu TextBox'ın Key eventleri ne yazık ki ListView nesnesine gelmiyor. Düzenleme işlemi bitince AfterLabelEdit event'i yakalanırsa şu kod çağrılabilir.private void listView1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
// Validation code goes here
}
Columns Alanı - Sütun Eklemek
Tasarım ekranından sütun eklenebileceği gibi, koddan da sütun eklenebilir.listView1.Columns.Add("ID",20);
listView1.Columns.Add("Name",40);
listView1.Columns.Add("Mobile",40);
Sütunu yaslayabiliriz.listView1.Columns.Add("From", 100, HorizontalAlignment.Left);
FullRowSelect Alanı- Satır Seçimi
Satırın tamamı seçilsin istersek şöyle yaparız.listView1.FullRowSelect = true;
ItemCheck EventŞöyle yaparız.
this.listView1.ItemCheck += new ItemCheckEventHandler(listView1_ItemCheck);
Handler şöyledir.private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.CurrentValue != CheckState.Checked) return;
for (int i = 0; i < lvBase.Items.Count; i++)
{
lvBase.Items[i].Checked = true;
}
}
Items AlanıŞöyle yaparız.
listView1.Items.Clear();
Items Alanı - Satır EklemekYeni bir satır nesnesi eklemek için şöyle yaparız. Diğer sütunlara yazmak için ListViewItem sınıfının SubItems listesi kullanılır.
ListViewItem item = new ListViewItem("colum1");
item.SubItems.Add("column2");
item.SubItems.Add("column3");
item.SubItems.Add("column4");
listView1.Items.AddRange(item);
Bir csv dosyadındaki satırları şöyle gösteririz.foreach(string strView = File.ReadLines(filepath))
{
String[] strArray = strView.Split(new char[] { ',' });
ListViewItem item = new ListViewItem(strArray[0].ToString());
item.SubItems.Add(strArray[1].ToString());
item.SubItems.Add(strArray[2].ToString());
item.SubItems.Add(strArray[3].ToString());
item.SubItems.Add(strArray[4].ToString());
item.SubItems.Add(strArray[5].ToString());
item.SubItems.Add(strArray[6].ToString());
listView1.Items.Add(item);
}
Bir sütunun rengi şöyle değiştirilir.item.SubItems[0].ForeColor = System.Drawing.Color.Red;
Bir sütunun font'u şöyle değiştirirlir.item.SubItems[0].Font = new Font(..., FontStyle.Italic);
Şöyle yaparız.item.UseItemStyleForSubItems = false;
LabelEdit Alanı
Şöyle yaparız.listView1.LabelEdit = true;
SelectedItems Alanı - Seçili Satırlar
Seçili satırlar şöyle silinir.
foreach (ListViewItem item in lstImgAdded.SelectedItems)
{
item.Remove();
}
SmallImageList Alanı
Şöyle yaparız.
Örnek ver
Tag Alanı
Seçili satırın 3. sütununun Tag alanıa erişmek için şöyle yaparız.
Şöyle yaparız.
Bu event gelirse SelectedItems listesi seçilen nesneleri içerir.
Şöyle yaparız.
listView1.SmallImageList = imageList1;
listView1.LargeImageList = imageList1;
StateImageList AlanıÖrnek ver
Tag Alanı
Seçili satırın 3. sütununun Tag alanıa erişmek için şöyle yaparız.
if ( listView1.SelectedItems.Count > 0 &&
listView1.SelectedItems[0].SubItems.Count > 2 )
listView1.SelectedItems[0].SubItems[2].Tag == seen ? "Seen" : "Not Seen";
Sorting Alanı Şöyle yaparız.
listView1.Sorting = SortOrder.None;
View Alanı
Şöyle yaparız.listView1.View = View.Details;
SelectedIndexChanged EventBu event gelirse SelectedItems listesi seçilen nesneleri içerir.
void listView1_SelectedIndexChanged(object sender, EventArgs e) {
if (listView1.SelectedItems.Count > 0) {
label1.Text = (string)listView1.SelectedItems[0].Text;
textBox1.Text = (string)listView1.SelectedItems[0].SubItems[1].Text;
}
}
Hiç yorum yok:
Yorum Gönder