Listbox, Windows form uygulamalarında sıklıkla kullanılan, text türündeki verileri alt alta liste şeklinde sıralayan ve saklayan bir kontroldür. Listbox kontrolünün kullanışlı birçok özelliği ve metodu bulunmaktadır. Şimdi bu kontrolün işimize en çok yarayan özelliklerini örnekler üzerinden anlatalım.
Listbox’a Veri Ekleme
Bu örnekte TextBox’a girilen değer, Buton’a tıklandığında Listbox’a eklenmektedir.
Uygulamayı tamamlamak için aşağıdaki ekran görüntüsünü oluşturduktan sonra buttona çift tıklayarak aşağıdaki kodu ekleyiniz.
1 |
listBox1.Items.Add(txtIl.Text); |
Items Özelliği: Listbox ile ilgili birçok işlem, Items özelliği ile gerçekleştirilir. ListBox’a eklenen her değer string türünde bir koleksiyona dahil edilir.
AddRange() metoduyla dizi değişkenlerinin tamamı ListBox’a eklenebilir.
1 2 |
string[] dizi = { "İzmir", "Ankara", "Bursa", "Eskişehir" }; listBox1.Items.AddRange(dizi); |
ListBox İçerisindeki Değerleri Silme
Listbox içersindeki tüm değerleri silmek için Clear() metodu kullanılır.
1 |
listBox1.Items.Clear(); |
Eğer sadece istenen değerler silinecekse, Remove() metodu kullanılır. Remove metodu ile kendisine parametre olarak verilen değer liste içerisinde bulunarak silinir.
1 |
listBox1.Items.Remove("Ankara"); |
Yukarıdaki kod liste içerisindeki ilk Ankara verisini silecektir. Eğer birden fazla aynı değer silinecekse bir döngü kullanılabilir.
Silinecek verinin satır numarası biliniyorsa RemoveAt() metodu kullanışlı olabilir.
1 |
listBox1.Items.RemoveAt(2); |
Yukarıdaki kod ile listede yer alan 2 nolu kayıt silinir.
ListBox Eleman Sayısını Öğrenme
Eğer liste üzerinde bir döngü çalıştıracaksanız liste elemanlarının sayısını bilmek gerekir. ListBox içerisinde ki eleman sayısını count() metoduyla öğrenebiliriz.
1 2 3 4 |
string[] dizi = { "İzmir", "Ankara", "Bursa", "Eskişehir" }; listBox1.Items.AddRange(dizi); int adet = listBox1.Items.Count; MessageBox.Show("Kayıt Sayısı:" + adet.ToString()); |
Yukarıdaki kod çalıştırıldığında “Kayıt Sayısı:4” mesajı ekranda gösterilir.
Seçili Kayıdın Index Numarasını Öğrenme
Listbox içerisindeki kayıtların üzerine tıklayarak kayıtlar arasından seçim yapabiliriz. Bu işleme sıklıkla ihtiyaç duyulduğu için bir örnek ile anlatalım.
Listboxdaki değerin üzerine çift tıklandığında bu değeri listeden silen uygulamayı yapalım.
1 2 3 4 5 6 7 8 9 |
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e) { DialogResult onay = MessageBox.Show("Kayıt Silinsin mi?", "Silme Onayı", MessageBoxButtons.YesNo); if (onay == DialogResult.Yes) { int satirno = listBox1.SelectedIndex; listBox1.Items.RemoveAt(satirno); } } |
ListBox İçerisinde Birden Çok Kayıdın Seçilmesi
ListBox’ın içerisinde normalde sadece tek bir satır seçilebilir. Ama ihtiyaca göre birden fazla kaydın seçilmesi gerekiyorsa SelectionMode özelliği kullanılabilir.
1 2 3 4 |
private void Form1_Load(object sender, EventArgs e) { listBox1.SelectionMode = SelectionMode.MultiExtended; } |
Yukarıdaki kod yardımıyla ctrl, shift ve yön tuşlarıyla Listbox içerisinde çoklu seçim yapılabilir.
ListBox’ın özelliklerinin hepsi yukarıdakiler değil, fakat en çok ihtiyaç duyulanları anlatmaya çalıştım. Konuyla ilgili sorularınızı bana iletebilirsiniz.
Hocam verdiğiniz bilgiler için teşekkürler yukarıda ilk resimde personel nöbetlerine benzer program yazdım. Veritabanında yada verileri programın içinde saklamak istiyorum. Bir türlü başaramadım, yardımlarınız için minnettar olurum.
Kardeş saklamak için ftp adresi açman ve ftp adresine .txt uzantılı dosya atman lazım daha sonra
http://ftp.UploadString(“ftp://ftp.ftpadresin/txtuzantısınınolduguyer”,listboxdakiveri); yaparak ekliyebilir ve hafızasında saklatabilirsin.
ftp açman için hostinger sayfasını tavsiye ederim
Klavyeden girilen sayilari listeleyen program formda iki label iki text box bir buton bir listbox var bunun kodlari nelerdir
Hocam verdiyiniz bilgiler için teşekkürler. Benim bir sorum vardı. Yardım ederseniz minnettar olurum. Listboxta olan bir kaydın ismini nasıl deyise bilirim?
Mesela yukarıdaki resmde olan İzmir ismini butona tikladıkda İzmir1 ile nasıl evez ede bilirim?
Hocam listbox a sayfadan veri alınırken sadece filitreli hücreleri aktarmak için bir kod var mıdır?