Anasayfa / Yazılım / C# / Key Events

Key Events

Windows kontrollerinden TextBox kontrolü için Key eventlerimize değinmek istiyorum. KeyDown tuşa basıldığı an aşağıdaya doğru giderken tetiklenir. KeyPress tuşa basılıp tuştan çekildiği an tetiklenen eventtir. KeyUp tuşa basılıp yukarı çekildiği an tetiklenen eventtir.

Şimdi uygulamamda bir adet textbox ekliyorum ve KeyDown eventinde aşağıdaki kodları yazıyorum.

KeyEventArgs parametresi bize hangi tuşa basıldığını söyler.

Örneğin e.Control ile Ctrl tuşuna basılıp basılmadığını kontrol edebiliriz. e.Control == True gibi bir if deyimi içinde kullanarak Ctrl tuşuna basılıp basılmadığını kontrol edebiliyorum.

Aynı durum e.Alt içinde geçerlidir. Alt tuşuna basılıp basılmadığını gösterir.

KeyValue parametresi ile basılan tuşun ASCII değerini alabiliriz. A’ya basıldığında 63 değerini geri döndürür mesela.
KeyCode ilgili tuşa basılan değerini verir. A’ya basıldı ise A gibi.

using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace KeyEventOrnek1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            MessageBox.Show(e.KeyValue.ToString());
        }

        private void textBox2_KeyDown(object sender, KeyEventArgs e)
        {
            MessageBox.Show(e.KeyCode.ToString());
        }

        private void textBox3_KeyDown(object sender, KeyEventArgs e)
        {
            MessageBox.Show(e.KeyData.ToString());
        }

        private void textBox4_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control == true)
            {
                MessageBox.Show("Ctrl tuşuna basıldı");
            }
            else if (e.Alt == true)
            {
                MessageBox.Show("Alt tuşuna basıldı");
            }
            else
            {
                MessageBox.Show("Ctrl veya alt tuşuna basılmadı");
            }
        }
    }
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir