Kullanıcı Dostu AutoCompleteSource

Bazılarımız projelerimizde biraz detaya dalarak yada zaman içinde kodlarımızı revize ederek kullanıcıya maximum kolaylık hedefleriz. Zaten kullanıcılarda bunu ister hatta bazıları vardır ki (bilirsiniz onlarla anlaşmak çok oluyor) tek tuşla harikalar yaratsın. Yazdıgımız programları örnek olarak üretim yapan büyük bir işletme için geliştirdiğinizi düşünürseniz büyük ihmal yazılımın bir modülünü üretimde ki işçi diğer modülünüde yönetici kullanacaktır. Zaman zaman aynı modüle kullanabilirler. Bundan dolatyı program mümkün oldugunca işleri kolaylaştırmalı hatta tek tuşla birçok iş yapabilmelidir. Çünkü herkes aynı yetenkelere sahip olmaya bilir. :)

Konuyu çok da uzatmamak için hemen sadete geliyorum. Bahsettiğim amaçlarla kullanıcı dostu arayüzler yaratmak için kullandıgımız bir sınıf var. AutoCompleteStringCollection sınıfı...
Bariz örnegi web browserınızda adres çubugunda otomatik tamamlanan adresleri bilirsiniz şimdi o olay nasıl oluyor onu incelicez.

Sıra geldi kodlara;

AutoCompleteStringCollection otoStr = new AutoCompleteStringCollection(); //Oto tamamlayıcı sınıfımızı tanımlıyoruz.
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Server=.;Database=ILLER;Uid=sa;Pwd=123456");
SqlCommand cmd = new SqlCommand("select * from tbiller",conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
otoStr.Add(dr[1].ToString()); // dönen degerler oto tamalayıcı kolleksiyonumuza dolduruyoruz
listBox1.Items.Add(dr[1].ToString());
}
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; // Tamamlama tipimizi beliritiyoruz
textBox1.AutoCompleteCustomSource = otoStr; // textBox1 nesnemizin AutoCompleteCustomSource özelligine oto tamamlayıcı sınıfımızı atıyoruz.
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) // textBox da otomatik tanımlanarak seçilen derger listedede işaretlensin istiyorum.
listBox1.SelectedItem = textBox1.Text;
}

Ben bunları Şehir isimlerini otomatik tanımlamak için kullandım..
Siz textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource özelliğini inceleyerek sistem kaynaklarınıda kullanalabilirsiniz.

Umarım faydalı olmuştur...
İyi çalışmalar.

Yorum Gönder