ListBox ve ComboBox' tan Seçilen Kaydı Silmek

06.10.2012 Hikmet Okumuş 9863 4 C#


Eğer kontrollerin Items koleksiyonu ile ekleme yapıldı ise silmek daha basittir. Fakat datasource özelliği ile ekleme yapıldı ise bir kaç satır daha fazla kod yazmamız gerekecektir. Hemen örneklemelere geçelim. Öncelikle ListBox' ın Items koleksiyonuna bir kaç veri girişi yapalım.
        private void VeriGir()
        {
            listBox1.Items.Add("Ali");
            listBox1.Items.Add("Can");
            listBox1.Items.Add("Hakan");
            listBox1.Items.Add("Yılmaz");
        }
Girilen verileri bir button ile ListBox içerisine dolduralım.
        private void button1_Click(object sender, EventArgs e)
        {
            VeriGir();
        }
Görüntü aşağıdaki gibidir.
www.hikmetokumus.com
Şimdi listeden bir kayıt seçelim ve silme işlemini yapalım.
        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.Remove(listBox1.SelectedItem);
        }
Remove metodu object bir değer almaktadır. SelectedItem seçilen satırın bilgisini object olarak döndürmektedir. Bu şekilde seçilen satır silinecektir. Birde RemoveAt metodu bulunmaktadır. Bu metod int bir parametre almaktadır. Girilen parametre silinecek list elemanın index' ini temsil etmektedir.
        private void button2_Click(object sender, EventArgs e)
        {
            listBox1.Items.RemoveAt(3);
        }
Bu şekilde index numarası 3 olan kayıt silinecektir.
Eğer datasource özelliğine setleme yaptıktan sonra listeden bir kayıt silmek istediğimizde yukarıdaki işlemler bize DataSource özelliği ayarlandığında öğeler koleksiyonu değiştirilemez. hatasını döndürecektir. Datasource özelliği setlenmiş ListBox' tan satır silmek için aşağıdaki işlem uygulanmalıdır.
        private void button2_Click(object sender, EventArgs e)
        {
            DataRowView SecilenSatir = listBox1.SelectedItem as DataRowView;

            if (null == SecilenSatir)
                return;

            SecilenSatir.Row.Delete();
        }
Datasource özelliği setlenmiş ListBox' ın satır silme işlemide bu şekilde yapılmaktadır.
Aynı işlemler ComboBox içinde geçerlidir.

Başarılar dilerim.


Kullanıcı Yorumları


hikmet okumuş makale yorum
Selin Çelik
03.02.2014 14:59:36
Peki birden fazla seçili öğeyi kaldırmak için nasıl bir kod yazmamız lazım. Kullanıcı kontrol tuşuna basarak birden fazla seçmek istiyorsa .. teşekkürler..
hikmet okumuş makale yorum
Hikmet Okumuş
03.02.2014 16:16:02
Selamlar, Bir ListBox kontrolünde kontrol tuşu ile birden fazla seçim yapmak için öncelikle Property panelinden SelectionMode özelliği MultiExtended olarak seçilmelidir. Bu seçimin ardından birden fazla seçim yapabilirsiniz. Seçilen kayıtları Remove ya da RemoveAt metodları ile silebilirsiniz. Remove ile silebilmek için object value belirtmeniz gerekmektedir. Örnek; private void button1_Click(object sender, EventArgs e) { while (listBox1.SelectedItems.Count > 0) { listBox1.Items.Remove(listBox1.SelectedItems[0]); } } RemoveAt ile silebilmek için index belirtmeniz gerekmektedir. Örnek; private void button2_Click(object sender, EventArgs e) { while (listBox1.SelectedIndices.Count > 0) { listBox1.Items.RemoveAt(listBox1.SelectedIndices[0]); } } Çoklu seçim ve birden fazla kayıt silme işlemi bu şekilde yapılmaktadır.
hikmet okumuş makale yorum
ercanilbars
16.03.2014 19:28:06
Arkadaslar acil yardım lazım vb.net de sql baglantılı listboxı textboxdan search yaptırmak istiyorm bu aşagıdaki kod datasource olmadan yapılıyor bunu datasource varken nasıl yapabılırm ? dim items() as string ={"a","b"} ListBox1.Items.Clear() ListBox1.Items.AddRange(items.Where(Function(s) s Like TextBox1.Text & "*").ToArray)
hikmet okumuş makale yorum
Hikmet Okumuş
19.03.2014 10:52:12
Selamlar ercanilbars, Linq ya da Lambda kullanarak sorgulama yaparsanız sorgulama yaptığınız veri kümesi üzerinden sonuç dönecektir. Siz TextBox içerisinde girmiş olduğunuz değeri database üzerinde aramasını istiyorsanız öncelikle database üzerinden Select çekmeniz gerekmektedir. Sonrasında dönen sonuç kümesini ListBox üzerinde gösterebilirsiniz.


Yorum