C# Combobox İçinde Veri Arama

Batuhan Düzgün tarafından yayınlanmıştır 2. May 2012 20:00

Merhaba arkadaşlar bu yazıda sizlere Windows Form Uygulamalarında kullanılan Combobox bileşenin "FindString" metodunda bahsedeceğim. Bu metod Combobox içinde yer alan elemanlar arasından arama yapmayı sağlamaktadır.
 
İlk adım olarak bir Windows Form Application projesi yaratılır. Aşağıdaki gibi örneği verilmiştir.
 
 
 
Öncelikli olarak Combobox bileşeni içine yerleştirilecek olan veri tipi hazırlanacaktır. Bunu bir sınıf yapısı tasarlanarak yapılabilir. "ComboboxItem" isminde bir sınıf yapısı aşağıdaki gibi hazırlanmıştır.

    // Combobox'a eleman olarak eklenecek olan sınıf yapısı

    class ComboboxItem

    {

        // Combobox içinde gösterilecek olan değer.

        private string display;

        // Combobox içinde olan elemana ait Value değeri.

        private string value;

        // Combobox'ta gösterilecek olan text alanı set edilir.

        public void setDisplay(string disPlay)

        {

            display = disPlay;

        }

        // Combobox'ta tutulacak olan value alanı set edilir.

public void setValue(string Value)

        {

            value = Value;

        }

        public string getDisplay()

        {

            return display;

        }

        public string getValue()

        {

            return value;

        }

        // Combobox içine eleman olarak eklendiğinde Combobox içinde Text değeri olarak gösterilmesi için "ToString()" metodu çağrılacaktır.

        // Bu nedenle display alanı Combobox'ta göstermek için return edilir.

        public override string ToString()

        {

            return display;

        }

    }

Ekran tasarımı aşağıdaki gibi hazırlanmıştır.

Ardından  "Form_Load" olayında Combobox içine gerekli elemanların yüklenilmesi işlemi yapılır.

// Combobox'a eklenecek olan elemanlar Form load olayında hazırlanır.

private string[] displays = { "Fenerbahçe", "Galatasaray", "Beşiktaş", "Trabzonspor" };

private string[] values = { "FB", "GS", "BJK", "TS" };

private void Form1_Load(object sender, EventArgs e)

{

      for (int i = 0; i < displays.Length; i++)

      {

                // Bir item nesnesi create edilir.

                ComboboxItem item = new ComboboxItem();

                item.setDisplay(displays[i]);

                item.setValue(values[i]);

                // Add metodu ile ComboboxItem nesnesi eklendiğinde,

                // otomatik olarak ToString metodu çağrılacaktır.

                // ToString metodunu override edilip, değiştirilmişti.

                comboBox1.Items.Add(item);

      }

} 


Son olarak ise Buton "Click" (Tıklama) olayına aşağıdaki kod bloğu yerleştirilir.

private void button1_Click(object sender, EventArgs e)

{

       // FindStringExact metodu ile girilen metin Combobox elemanları içinde aranır.

       // Ardından bir indis değeri döndürülür.

       int index = comboBox1.FindStringExact(textBox1.Text.Trim());

       // Eğer girilen metin değeri Combobox içinde bulunmuyorsa, -1 döndürülecektir.

       if (index != -1)

       {

             // Eleman bulunduysa Combobox'a eklenen eleman ComboboxItem tipinde olduğu için cast işlemi yapılır.

             // İlgili indisteki item alınır.

             ComboboxItem foundItem = (ComboboxItem)comboBox1.Items[index];

             MessageBox.Show(foundItem.getValue());

       }

       else

       {

             MessageBox.Show("Girilen değerde bir eleman bulunmamaktadır.");

       }

} 
 
Yazılan uygulamayı çalıştırmak için F5 tuşu ile derleme yapıldğında sonuç aşağıdaki gibi olacaktır.
 
 
Ardından yazı alanına "Fenerbahçe" yazıp "ARA" tuşuna tıklanıldığında aşağıdaki gibi "Fenerbahçe" ifadesinin değeri olan "FB" değeri ekrana yazdırılacaktır.

 
Bir sonraki makalemde görüşmek dileğiyle ...
 
Batuhan Düzgün
Bilgisayar Mühendisi
Endüstri Mühendisi 

Currently rated 5.0 by 4 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

C#

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  November 2018  >>
MoTuWeThFrSaSu
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

Yazıları geniş takvimde göster