C# Windows Forms Basit TextBox Olayları Kullanımı
Windows Forms uygulamalarında TextBox kontrolü, kullanıcıdan metin veya bilgi almak için kullanılan temel kontrollerden biridir. TextBox kontrolü yalnızca metin girişi yapmak için değil, kullanıcının gerçekleştirdiği işlemleri takip etmek ve metin girişine farklı davranışlar kazandırmak için de kullanılabilir.
Örneğin kullanıcı TextBox içerisine yazı yazdığında karakter sayısını gösterebilir, fare veya klavye odağı TextBox üzerine geldiğinde arka plan rengini değiştirebilir, çift tıklama ile içerisindeki bütün metni seçebiliriz.
Bu işlemleri gerçekleştirmek için Windows Forms içerisinde TextChanged, Enter, Leave, DoubleClick, KeyDown ve KeyUp gibi olaylardan yararlanabiliriz.
Bu makalede Visual Studio kullanarak TextBox kontrolünün temel olayları ve bu olayların C# kodlarıyla nasıl kullanılacağı anlatılmaktadır.
1. TextBox Olayları Nedir?
TextBox olayları, kullanıcı TextBox kontrolü üzerinde belirli bir işlem gerçekleştirdiğinde çalışan metotlardır.
Örneğin kullanıcı metin kutusuna bir karakter yazdığında TextChanged olayı, metin kutusuna tıkladığında veya klavyeyle odaklandığında Enter olayı çalışabilir.
Windows Forms uygulamalarında sık kullanılan TextBox olayları şunlardır:
-
TextChanged: TextBox içerisindeki metin değiştiğinde çalışır.
-
Enter: TextBox kontrolü giriş odağını aldığında çalışır.
-
Leave: TextBox kontrolü giriş odağını kaybettiğinde çalışır.
-
DoubleClick: TextBox kontrolüne çift tıklandığında çalışır.
-
KeyDown: Klavyede bir tuşa basıldığında çalışır.
-
KeyUp: Basılan klavye tuşu bırakıldığında çalışır.
2. TextChanged Olayı
TextChanged olayı, TextBox içerisindeki metin değiştiğinde çalışır.
Kullanıcı metin kutusuna yeni bir karakter girdiğinde, mevcut metni sildiğinde veya metni değiştirdiğinde bu olay tetiklenir.
Örneğin kullanıcı yazı yazdıkça karakter sayısını Label üzerinde gösterebiliriz.
Form üzerine bir TextBox ve bir Label ekleyelim.
TextBox kontrolünün TextChanged olayına aşağıdaki kodları yazalım:
private void metinkutusu_TextChanged(object sender, EventArgs e)
{
label1.Text = metinkutusu.Text.Length + " karakter";
}
Bu kodda metinkutusu.Text.Length ifadesiyle TextBox içerisindeki karakter sayısı öğrenilir ve Label üzerinde gösterilir.
Örneğin kullanıcı TextBox içerisine Merhaba yazdığında Label üzerinde 7 karakter yazısı görüntülenir.
Bu yöntem özellikle karakter sınırı bulunan metin alanlarında kullanışlıdır.
3. Enter Olayı
Enter olayı, TextBox kontrolü klavye odağını aldığında çalışır.
Kullanıcı fare ile TextBox üzerine tıkladığında veya klavyedeki Tab tuşuyla TextBox kontrolüne geçtiğinde bu olay tetiklenebilir.
Örneğin kullanıcı metin kutusuna geldiğinde arka plan rengini kırmızı yapmak isteyebiliriz.
private void metinkutusu_Enter(object sender, EventArgs e)
{
metinkutusu.BackColor = Color.Red;
}
Bu kodda kullanıcı TextBox kontrolüne odaklandığında BackColor özelliği kırmızı olarak değiştirilir.
Böylece kullanıcının hangi metin alanında işlem yaptığını görsel olarak belirtmiş oluruz.
4. Leave Olayı
Leave olayı, TextBox kontrolü klavye odağını kaybettiğinde çalışır.
Kullanıcı başka bir kontrole geçtiğinde veya metin kutusundan odağı uzaklaştırdığında bu olay tetiklenir.
Örneğin TextBox kontrolünün arka plan rengini kullanıcı metin kutusundan ayrıldığında beyaz yapmak isteyebiliriz.
private void metinkutusu_Leave(object sender, EventArgs e)
{
metinkutusu.BackColor = Color.White;
}
Bu kod çalıştığında kullanıcı TextBox kontrolünden ayrılır ve arka plan rengi beyaz olur.
Enter ve Leave olayları genellikle birlikte kullanılır. Böylece kullanıcı metin kutusuna geldiğinde farklı, ayrıldığında ise normal bir görünüm elde edilebilir.
5. DoubleClick Olayı
DoubleClick olayı, kullanıcı TextBox kontrolüne çift tıkladığında çalışır.
Bu olay sayesinde çift tıklama ile metin seçme, belirli işlemleri başlatma veya metin alanının içeriğini düzenleme gibi işlemler gerçekleştirilebilir.
Örneğin kullanıcı TextBox içerisine yazılan metnin tamamını çift tıklayarak seçmek isteyebilir.
Bunun için SelectAll() metodunu kullanabiliriz.
private void metinkutusu_DoubleClick(object sender, EventArgs e)
{
metinkutusu.SelectAll();
}
Bu kodda kullanıcı TextBox üzerine çift tıkladığında içerisindeki bütün metin seçilir.
Örneğin metin kutusunda Merhaba Dünya yazıyorsa çift tıklama sonucunda metnin tamamı seçili hale gelir.
SelectAll() metodu, TextBox içerisindeki bütün metni seçmek için kullanılır.
6. KeyDown Olayı
KeyDown olayı, kullanıcı klavyede bir tuşa bastığında çalışır.
Bu olay sayesinde kullanıcının hangi tuşa bastığını öğrenebilir ve basılan tuşa göre farklı işlemler gerçekleştirebiliriz.
Örneğin TextBox içerisinde hangi tuşa basıldığını başka bir TextBox üzerinde göstermek isteyebiliriz.
Form üzerine iki adet TextBox ekleyelim:
metinkutusu kontrolünün KeyDown olayına aşağıdaki kodları yazalım:
private void metinkutusu_KeyDown(object sender, KeyEventArgs e)
{
textBox1.Text = e.KeyCode.ToString();
}
Bu kodda e.KeyCode ifadesiyle kullanıcının bastığı tuşun kodu alınır.
ToString() metodu ile alınan tuş bilgisi metne dönüştürülür ve textBox1 isimli TextBox içerisine aktarılır.
Örneğin kullanıcı metinkutusu içerisine A tuşuna bastığında ikinci TextBox üzerinde A yazısı görüntülenir.
KeyDown olayı özellikle klavye kontrolleri, kısayol tuşları ve özel klavye işlemleri gerçekleştirmek için kullanılabilir.
7. KeyUp Olayı
KeyUp olayı, kullanıcı daha önce bastığı klavye tuşunu bıraktığında çalışır.
KeyDown olayı tuşa basıldığı anda, KeyUp olayı ise tuş bırakıldığında tetiklenir.
Örneğin kullanıcı TextBox üzerinde bir tuşa bastıktan sonra tuşu bıraktığında ekranda mesaj göstermek isteyebiliriz.
private void metinkutusu_KeyUp(object sender, KeyEventArgs e)
{
MessageBox.Show("Tuş bırakıldı");
}
Bu kodda kullanıcı klavyede bir tuşa basıp bıraktığında KeyUp olayı çalışır ve ekranda Tuş bırakıldı mesajı görüntülenir.
Bu örnekte hangi tuşun bırakıldığı kontrol edilmez. Klavyede basılıp bırakılan her uygun tuş için mesaj kutusu açılır.
KeyUp olayı, klavye hareketlerini takip etmek ve tuş bırakıldıktan sonra belirli işlemleri gerçekleştirmek için kullanılabilir.
8. KeyDown ve KeyUp Arasındaki Fark
KeyDown ve KeyUp olayları klavye işlemlerini takip etmek için kullanılır. Ancak bu iki olayın çalışma zamanları birbirinden farklıdır.
Örneğin kullanıcı A tuşuna bastığında önce KeyDown olayı, tuşu bıraktığında ise KeyUp olayı çalışır.
Bu iki olay birlikte kullanılarak klavye hareketleri daha ayrıntılı şekilde takip edilebilir.
private void metinkutusu_KeyDown(object sender, KeyEventArgs e)
{
label1.Text = "Tuşa basıldı: " + e.KeyCode;
}
private void metinkutusu_KeyUp(object sender, KeyEventArgs e)
{
label1.Text = "Tuş bırakıldı: " + e.KeyCode;
}
Bu örnekte kullanıcı bir tuşa bastığında Label üzerinde basılan tuş, tuşu bıraktığında ise bırakılan tuş bilgisi görüntülenir.
9. TextBox Olayları Nasıl Oluşturulur?
Visual Studio içerisinde TextBox olaylarını oluşturmak oldukça kolaydır.
Olayları oluşturmak için aşağıdaki adımları izleyebilirsiniz:
-
Windows Forms tasarım ekranını açın.
-
Form üzerindeki TextBox kontrolünü seçin.
-
Özellikler (Properties) penceresini açın.
-
Özellikler penceresindeki yıldırım simgesine tıklayın.
-
Açılan olaylar listesinden kullanmak istediğiniz olayı bulun.
-
İlgili olayın karşısındaki alana çift tıklayın.
-
Visual Studio tarafından oluşturulan metot içerisine C# kodlarınızı yazın.
Örneğin TextChanged olayını seçtiğinizde Visual Studio aşağıdaki gibi bir metot oluşturur:
private void metinkutusu_TextChanged(object sender, EventArgs e)
{
}
Bu metodun içerisine TextBox içerisindeki metin değiştiğinde çalışmasını istediğiniz kodları yazabilirsiniz.
Not: Olay metotlarını oluştururken aynı olayın birden fazla kez tanımlanmamasına dikkat edilmelidir.
10. TextBox Olaylarını Kullanırken Dikkat Edilmesi Gerekenler
-
TextChanged olayı, TextBox içerisindeki metin değiştiğinde çalışır.
-
Enter olayı, TextBox klavye odağını aldığında çalışır.
-
Leave olayı, TextBox klavye odağını kaybettiğinde çalışır.
-
DoubleClick olayı, TextBox kontrolüne çift tıklandığında çalışır.
-
KeyDown olayı, klavyede bir tuşa basıldığında çalışır.
-
KeyUp olayı, basılan klavye tuşu bırakıldığında çalışır.
-
SelectAll() metodu, TextBox içerisindeki bütün metni seçer.
-
Text.Length ifadesi, TextBox içerisindeki metnin karakter uzunluğunu verir.
-
e.KeyCode ifadesi, klavyede basılan veya bırakılan tuşun kodunu öğrenmek için kullanılır.
-
Olayların çalışabilmesi için ilgili metotların TextBox kontrolüne doğru şekilde bağlanması gerekir.
11. Konunun Özeti
-
TextChanged: TextBox içerisindeki metin değiştiğinde çalışır.
-
Enter: TextBox klavye odağını aldığında çalışır.
-
Leave: TextBox klavye odağını kaybettiğinde çalışır.
-
DoubleClick: TextBox üzerine çift tıklandığında çalışır.
-
KeyDown: Klavyede bir tuşa basıldığında çalışır.
-
KeyUp: Basılan tuş bırakıldığında çalışır.
-
Text.Length: Metnin karakter uzunluğunu verir.
-
SelectAll(): TextBox içerisindeki bütün metni seçer.
-
e.KeyCode: Klavyede basılan veya bırakılan tuşun kodunu belirtir.
TextBox olayları, Windows Forms uygulamalarında kullanıcı hareketlerini takip etmek ve metin giriş alanlarına farklı özellikler kazandırmak için kullanılır. TextChanged, Enter, Leave, DoubleClick, KeyDown ve KeyUp olayları sayesinde kullanıcıların metin kutusu üzerindeki işlemlerine göre otomatik olarak farklı kodlar çalıştırılabilir. Bu olaylar birlikte kullanılarak daha etkileşimli ve kullanışlı Windows Forms uygulamaları hazırlanabilir.