İlginizi Çekebilir
  1. Ana Sayfa
  2. Genel
  3. C# Sanal Klayve Yapımı – Virtual Keyboard

C# Sanal Klayve Yapımı – Virtual Keyboard

C# Sanal Klayve Yapımı - Virtual Keyboard

Merhabalar, C# Sanal Klayve Yapımı – Virtual Keyboard dersim ile C# eğitim setime devam ediyorum.  Bu dersi yapmak istedim çünkü windows tablete yazdığım bir uygulamada lazım oldu. Durum böyle olunca dersini de eklemek istedim. Zahmetli gibi görünse de aslında neredeyse hiç zahmetli değil. Tabi işimizi biliyorsak. Şimdi gelin C# Sanal Klayve Yapımı – Virtual Keyboard nasıl oluyormuş görelim.

C# Sanal Klayve Yapımı

Öncelikle belirtmeliyim ki bu basit bir klavyedir. Yani tuş kombinasyonları (CTRL, SHIFT) yer almıyor. Sadece Capslock tuşunun fonksiyonu var.  Özel karakterler ayrı tuşlar olarak yer alıyor.

Kafanızda bir klavye yapmak için o kadar butonun click eventi ile uğraşılmaz gibi bir şey düşünüyorsanız bu düşünceyi kafanızda çıkarmanızı tavsiye ediyorum çünkü bu yazıda böyle bir şey yok. Ne kadar basit olduğunu gördüğünüzde şaşırabilirsiniz bile. Capslock tuşunun fonksiyonunu çalıştırmak için gerekli kodlar, herhangi harf butonuna tıklandığında harfi textbox’a yazan kodların toplamından daha uzun. 😀

Şimdi görelim nasıl yaptığımzı…

Form tasarımım aşağıdaki gibidir.

C# Sanal Klayve Yapımı

Şimdi kodlarımıza geçelim.

Capslock butonunun click eventi…

        bool CapsLock = true;
        private void btn_caps_Click(object sender, EventArgs e)
        {
            if (CapsLock)
            {
                CapsLock = false;
                lbl_bilgi.Text = lbl_bilgi.Text.ToLower();
            }
            else
            {
                CapsLock = true;
                lbl_bilgi.Text = lbl_bilgi.Text.ToUpper();
            }

            foreach (Button item in panel1.Controls)
            {
                if (CapsLock)
                    item.Text = item.Text.ToUpper();
                else
                    item.Text = item.Text.ToLower();
            }
        }

Burada söylemem gereken bir şey var. Yukarıdaki tasarımda, alt kısımdaki tüm butonlar bir panel içerisinde yer alıyor. Böyle yapmaz isek foreach döngüsünde InvalidCastException hatası alırız. Mesela, o panelin içerisine bir label koyarsak şöyle bir hata alırız.

”System.Windows.Forms.Label’ türündeki nesne ‘System.Windows.Forms.Button’ türüne atılamadı.’

Bu sebeple tüm butonları bir panel içerisinde alıyoruz ki foreach döngüsü kullanarka bütün butonların text’lerinde yazan harfleri büyütelim / küçültelim.

 

Sil butonunun click eventi…

        private void btnSil_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length > 0)
            {
                textBox1.Text = textBox1.Text.Remove(textBox1.Text.Length - 1);
            }
        }

 

Buraya kadar bir sorunumuz yok. Buradan sonra bir buton click eventini kopyalıyoruz ve adını btn_Click olarak yazıyoruz. Aşağıdaki gibi…

   private void btn_Click(object sender, EventArgs e)
        {

        }

Sonrasında panel içine koyduğumzu bütün buttonları seçiyoruz ve Properties (Özellikler) kısmına gelerek event kısmına giriyoruz. Paneldeki bütün butonlar seçili iken Click eventi kısmına geliyoruz ve sağ taraftaki oka tıklayarak yukarıda verdiğimiz eventi seçiyoruz. Yani paneldeki 63 butona tek bir event veiyoruz.

Bu işlemi yaptıktan sonra eventimizi aşağıdaki gibi düzenliyoruz.

        private void btn_Click(object sender, EventArgs e)
        {
            Button b = (Button)sender;
            textBox1.Text = textBox1.Text + b.Text;
        }

Bu eventteki kodların ilk satırını açıklayalım. Burada, ilk satırda gördüğünüz Object sender, kısmından gelen objenin bir buton olduğunu söylüyoruz. Yani click eventi gerçekleştiğinde eventi gerçekleştiren nesne, Object sender kısmına geliyor. Bizde sender ile o objenin bir button olduğunu belirtiyoruz. Ardından textbox1’e harfleri yazıyoruz.


C# Sanal Klayve Yapımı – Virtual Keyboard, yazımda bu kadardı arkadaşlar. Diğer yazılarımızda görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu dersimde Github ‘da yerini almıştır. Linke tıklayarak Github sayfasına gidebilir ve indirebilirsiniz.

Sağlıcakla ve takipte kalın. 😉

Yorum Yap

Yazar Hakkında

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım. Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir. Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.

Yorum Yap