C# Key Event Kullanımı – Klavyeden Basılan Tuşu Yakalama
Merhaba arkadaşlar bugün sizlere C# programlama dili ile Klavyeden bastığınız tuşların ne olduğunu görmenize yarayan 2 adet fonksiyon paylaşacağım.
Birinci fonksiyonda klavyeden basılan normal tuşları gösteren ve bunun yanında spesifik olarak Enter ve Esc tuşarını tanıyan iki adet if döngüsü yazdım. Sizlerde bu ifleri devam ettirebilirsiniz. Örneğin Sol Shift tuşunu LShift olarak tanıtabilirsiniz.
Yazdığımız Key_Press fonksiyonu klavyedeki alfabetik tuşları tanıyor else bölümünde “label1.Text = (e.KeyChar.ToString());” klavyeden bastığımız her harf ve sayı karakter olarak geldiğinden e.KeyChar kullanabiliyoruz. Ama Enter,Space,Esc.. gibi tuşlar karakter olmadığı için bunları “(char)Keys.TusAdi” şekilde yazıp “e.KeyChar”‘a eşitlediğimizde yakalayabiliyoruz.
İkinci fonksiyon Key_Press_Up bu fonksiyonun amacı ise yön tuşlarını anlamaktır. Aynı şekilde yön tuşlarıda bize Char değer göndermediğinden “Keys.Tusadi” şeklinde yakalamamız gerekiyor. Tabiki bunu if döngüsünde eşitlerkende e.KeyCode kullanmalıyız.
Ben örnek olarak Form’a bir tane label ekledim. Bastığım tuşarıda labelde gösteriyorum.
private void Key_Press(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { label1.Text = ("Enter"); } else if (e.KeyChar == (char)Keys.Escape) { label1.Text = ("Escape"); } else if (e.KeyChar == (char)Keys.Space) { label1.Text = ("Space"); } else // Standart keys...(qwert..) { //MessageBox.Show(e.KeyChar.ToString()); label1.Text = (e.KeyChar.ToString()); } } private void Key_Press_Up(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right) { label1.Text = (e.KeyCode.ToString()); } }
Son olarak bu fonksiyonları ekledikten sonra formun Event bölümünden KeyPress eventine 1. fonksiyonumuzu KeyUp ve KeyDown eventlerinede 2. fonksiyonumuzu tanıtırsak bütün ayarlar bitecektir.
Teşekkür ederim Emre Bey 🙂