LİSTBOX EVENT OLAYLARI
C# listbox kontrolünü kod ile oluşturma ve kod ile event yaratma. Mouse double click, Selected index changed, Mouse hover, Mouse leave event olayları ve örnek program kodları.
ListBox MouseDoubleClick Olayı
Aşağıdaki kod parçasında iki adet ListBox kontrolü oluşturulmakta ve listboxlardan 1. sine değer girip herhangi bir satıra çift tıklayınca, bu satırı 2. Listbox kontrolüne atan kod parçası yer alıyor.
ListBox listeler1;
ListBox listeler2;
int top1 = 0;
int left1 = 0;
private void Form1_Load(object sender, EventArgs e)
{
top1 = 20;
left1 = 60;
listeler1 = new ListBox();
listeler1.Top = top1;
listeler1.Left = left1;
listeler1.Width = 150;
listeler1.Height = 250;
listeler1.MouseDoubleClick += Listekutu1_MawsDouble;
this.Controls.Add(listeler1);
top1 = 20;
left1 = 320;
listeler2 = new ListBox();
listeler2.Top = top1;
listeler2.Left = left1;
listeler2.Width = 150;
listeler2.Height = 250;
this.Controls.Add(listeler2);
}
private void button1_Click(object sender, EventArgs e)
{
listeler1.Items.Add(textBox1.Text);
}
private void Listekutu1_MawsDouble(object sender, MouseEventArgs e)
{
string lbtext;
lbtext = listeler1.SelectedItem.ToString();
listeler2.Items.Add(lbtext);
}
Yukarıdaki kod parçası herhangi bir listbox kontrolünden çift tıklama ile tıklanan kaydın nasıl alınacağını gösteriyor. Pekala bu veriyi listbox2 ye kaydetmeyip başka bir iş içinde kullanabilirsiniz.
ListBox SelectedIndexChanged
Listbox’ta hangi kayda tıklarsanız o kayıtla ilgili bir işlem yapmak istediğinizde kullanabilirsiniz. Bu okuma, silme, kopyalama şeklinde olabilir. Buraya yazacağım örnekte textBox1 kontrolüne, tıkladığınız satırın indis numarasını yazacak.
Eğer eventi kod ile oluşturmak istemezseniz, properties penceresinde şimşek ikonuna tıklayın tüm eventler orada yer alıyor. Herhangi bir eventi çift tıklarsanız kodları yazacağınız blok otomatik oluşturulacaktır. Tabii bunun için listbox kontrolünü kod ile değil de sürükle bırak yaparak forma eklemeniz gerekli.
Yukarıda listbox’u oluşturan kodları vermiştik. Kod ile selectedindexchanged eventi eklemek için listbox’u oluştururken aşağıdaki satırı eklememiz yeterli.
listeler1.SelectedIndexChanged += Listekutu1_IndexChanged;
Daha sonra event gerçekleştiğinde ne yapılacağını aşağıdaki şekilde yazıyoruz.
private void Listekutu1_IndexChanged(object sender, EventArgs e)
{
textBox1.Clear();
int indis = listeler1.SelectedIndex;
textBox1.Text = indis.ToString();
}
ListBox MouseHover Eventi
Fare listbox’un üzerinde geldiğinde bu event tetiklenir. Event fareyi listbox kontrolünün üzerine her getirişimizde bir kez gerçekleşir.
Bununla ilgili bir örnek aşağıda yer alıyor. Fare listbox üzerine getirilince 1’den 20 ye kadar olan sayıları listbox’a giriyor.
Yukarıda ilk örnekte kod ile listbox oluşturmayıda vermiştik o kısma aşağıdaki satırı eklerseniz kod ile oluşturduğunuz listbox’a MouseHover eventi de eklemiş olursunuz.
listeler1.MouseHover += Listekutu1_MawsHover;
Yukarıdaki kod ile eventi tanımladık. Şimdi event gerçekleştiğinde yapılacakları yazalım.
private void Listekutu1_MawsHover(object sender, EventArgs e)
{
for(int i=0;i<20;i++)
{
listeler1.Items.Add((i + 1).ToString());
}
}
ListBox MouseLeave Eventi
Yukarıdaki MouseHover olay eventinde fare her gelişinde listbox’a veri eklenmektedir. Bu bizim yaptığımız örnekte 1’den 20 ye kadar olan sayılar her getirişinizde listbox’a eklenir. Şöyle bir şey yapmak isteyebiliriz. Kullanıcı listbox üzerine geldiğinde ilgili içerik oluşturulsun, fare listbox üzerinden ayrılınca tekrar kaldırılsın. Bu örneği de MouseLeave olay eventine yazarız.
listeler1.MouseLeave += Listekutu1_MawsLeave;
private void Listekutu1_MawsLeave(object sender, EventArgs e)
{
listeler1.Items.Clear();
}
Diğer olay ve tanımlamaları da benzer şekilde yapılmaktadır.
Aşağıda buraya kadar anlatılan tüm kodlar toplu halde uygulama biçiminde verilmiştir.
Kolay Gelsin.
SANATSAL BİLGİ
10/11/2016