Bu yazmızda da sevdiğim bir nesne olan listView ' i anlatmak istiyorum.
Programlarınıza değişik bir hava katıyor tavsiye ederim az da olsa dataGridView kontrolüne göre zahmetli sayılabilir. Burda anlatılanları kabaca kontrol hakkında bilgi sahibi olabilmeniz için yazdım siz daha geliştirebilir ve benimlede paylaşabilirsiniz. Bu kada geyik yeter diyor ve kodlamaya geçiyorum :)
Öncelikle lisView e 3 tane kolon eklemeniz lazım. (isterseniz kodla yapabilirsiniz)
int i = 0;
Bu metod bizden 1 tane görsellik ayarlarını yapmak için listView nesnesi istiyor. Proje içinde çokca kullanacagımızı var sayarsak bu metod işleri hızlandırabilir. Bütün bunları ve daha fazlasını properties ekranından da yapabilirsiniz.
Satır satır açıklayalım biz nerde ne yaptık..
private void ListeDuzenle(ListView _listView)
{
_listView.View = View.Details; //listview in liste şeklinde görünmesi için kullandık.
_listView.Columns[0].Width = 50; // Kolon Genişliğini ayarladık.
_listView.Columns[1].Width = 150; //Kolon isimleride kullanılabilir.
_listView.Columns[2].Width = 150;
_listView.FullRowSelect = true; // Tüm satır seçilmesi için.
_listView.MultiSelect = false; //Birdeb fazla satır seçilemesin diye. Silme vs. işlerde lazım olacak.
_listView.GridLines = true; //Grid çizgileri görünsün istiyorum.
_listView.HideSelection = false; // !!! Normalde listview seçili satırdan (nesneden) ayrıldıgınız zaman seçim olayı kalkar. Biz bunun önüne geçmek için bu özelligi kullandık. Artık nesneden ayrılsanızda arkada gri bir renk bırakır.
}
//Yeni item ler eklediğimiz kısma geldik. Ben burda olayı göstermek için adımı ve web adresimi yazmakla geçiştirdim siz database işlemlerinde de sorgudan dönen degerleri sıkıntı çekmeden ekleye bilirsiniz.
private void btnEkle_Click(object sender, EventArgs e)
{
ListViewItem lstItem = new ListViewItem(); // Yeni bir item tanımladık. Artık item mimiz bu şekilde anılacak.
++i;
lstItem.Text = i.ToString(); // !!! Burdada SubItems.Add() kullanırsınız. 1. kolonun boş oldugunu görürsünüz.
lstItem.SubItems.Add("Fatih UYDURAN"); // SubItems lerimizi eklemeye başladık.
lstItem.SubItems.Add("http://www.artilogo.net");
listView1.Items.Add(lstItem); //Eklediğimiz SubItemleri listView nesnemize ekliyoruz.
}
Sıra geldi eklenen satırlardan silme işlemine
private void btnSil_Click(object sender, EventArgs e)
{
if (listView1.SelectedIndices.Count > 0) //Secili satır varmı yokmu kontrol ediliyor.
listView1.Items.RemoveAt(listView1.SelectedItems[0].Index); //Seçili satırın index i ni yakalayarak satırı sildik.
}
private void Form1_Load(object sender, EventArgs e)
{
ListeDuzenle(listView1); //listview in görünüm ayarlarını yapsın diye metodu çagırdık.
}
private void btnTemizle_Click(object sender, EventArgs e)
{
listView1.Items.Clear(); //listview i boşalttık.
}
Sıra aramada e kadar kayıt var arama olmalı mutlaka.
private void btnAra_Click(object sender, EventArgs e)
{
for (int i = 0 ; i < listView1.Items . Count ; i + + )
{
if (listView1.Items[i].SubItems[1].Text==txtAra.Text)
{
listView1.Items[i].ForeColor = Color.Blue; //Aynıymış ozaman buldugumuz belli olsun işaretleyelim. Yazı rengini mavi yaptık.
listView1.Focus(); // !!! Satırı seçebilmek için nesne üzerine odaklandık. Yoksa alttaki komut iş görmeyecekti. Hata vermezdi ama işlevini yerine getiremezdi.
listView1.Items[i].Selected = true; //Üzerinde oldugumuz satırı seçtik.
break; // !!! Diğer satırları boş yere dolaşmayalım diye döngüden çıktım. Farklı amaçlar için çıkılmayada bilir. Mesela buldugu tüm değerleri işaretlesin yazı rengini mavi yapsın diye.
}
else
{
listView1.Items[i].ForeColor = Color.Empty; //Bir önceki aramada mavi olarak işaretlen değer varsa şimdiki aramayla karışmaması için rengi kaldırdık.
}
}
}
lisview burda en basit haliyle konunun kavrana bilmesi için bu şekilde anlatıldı. Haliyle çok daha detayı var kullanım amacına göre detayladırılabilir.
Umarım faydalı olmuşdur.
9 yorum
Çok teşekkür ederim.
Cevaplathanks
Cevaplarica ederim iyi çalışmalar...
Cevaplaya bana yardım edin lütfen..ben bunları visual studio 2005 te nasıl yapıcam öyle yazınca hata veriyo kodun altı mavi oluyo ama bana seçilen kodun nasıl silinceği lazım:S kafam basmıyor galiba :D
CevaplaEstf...
CevaplaBurda anlatılanlara göre btnEkle, btnSil, btnAra adında 3 tane buton ve 1 tane listView e ihtiyanız var. Yapmanız gereken ilgli kodları doğru eventlerin altına taşımak gerekiyor.
iyi çalışmalar...
çok açık ve ne emegıne sağlık
CevaplaGüzel olmuş, Teşekkürler. Yazılar biraz daha düzenli olursa yani font'u falan iyi olur, Kolay Gelsin.
CevaplaEmeğinize sağlık. Bir butona tıklayınca listview1 den 5. satırı seçsin istiyorum. Bunu nasıl yapabiliriz
Cevaplaaçıklayıcı ve öğretici bir yazı olmuş , ty
CevaplaYorum Gönder