Çarşamba, 28 Mart 2012 18:37

Sanal Klavye

Yazan
Öğeyi Oyla
(4 oy)

Windows üzerinde Basit bir sanal klavye uygulaması yapacağım. Uygulamam şu şekilde çalışacak: Çalıştır'a bastığımda form üzerine üzerinde A'dan Z'ye kadar harflerin bulunduğu buttonlar gelecek ve üzerlerine tıkladığımda ilgili harf bir textbox kontrolüne yazılacak. Klavyenin yanında da "Sil" ve "Boşluk" komutları olacak.

Gerekli Kontroller: Forma Bir groupBox(basılan buttonların sığacağı genişlikte ayarlıyorum),bir textbox, ve 2 tane de ilave olarak button kontrolü atıyorum. harf yazdıracak olan buttonları bir döngü ile oluşturacağım,diğer iki komutu ise kendim ekliyorum bu buttonları da groupbox1'in uygun bir köşesine yerleştiriyorum ve isimlerini yani properties kısmından name özelliklerini "BtnSil","Btn Boşluk" olarak kaydediyorum. ve Form1'in Load Event'ine gelerek şunları yazıyorum:

private void Form1_Load(object sender, EventArgs e) ==> Form1 Load Event'i
        {
           
            int Sol = 30; ==> Basacağım buttonların sol tarafa olan uzaklıklarını kontrol etmek için değişken tanımlıyorum.
            int Yukari = 40; ==> Basacağım buttonların yukarıya olan uzaklıklarını kontrol etmek için bir değişken tanımlıyorum.
            int Sayi = 0; ==>basılacak olan buttonların kaçarlı olarak yanyana geleceklerini belirlemek için bir değişken...
            for (char Karakter = 'A'; Karakter <='Z'; Karakter++) ==>for döngüsü açıyorum ve char tipinde karakter isimli değişkenimi A ile Z arasında tanıtıyorum. karakter++ oldukça char değeri de artacak ve Z'ye geldiğinde döngüden çıkılacak.
            {
                
                Button Btn = new Button(); ==>döngü işledikçe her seferinde Btn isimli yeni bir button oluşacak.
                Btn.Text = Karakter.ToString(); o ==> oluşan btn isimli button kontrolümün textine her seferinde değeri artan karakter değişkenimi veriyorum.
                Btn.Left = Sol; ==>button kontrolümün left özelliğine yukarıda tanımladığım sol değerini veiyorum.
                Btn.Top = Yukari;==>buttonun yukarı olan uzaklık değerini atadım.
                Btn.Width = 30; ==>oluşan buttonuma genişlik değeri veriyorum.
                Btn.Height = 30; ==>oluşan buttonuma yükseklik değeri veriyorum.
                Sayi++; ==> bu değişkeni her seferinde arttırıyorum aşağıda açıklayacağım
                Btn.Click += new EventHandler(Btn_Click); ==>burada basılan buttonlarımın komut verebilmesi için bir event tanımlıyorum bu event ise aşağıda Btn_Click isimli metodun içerisindedir. Burada şunu yaptım: Btn.Click += yazdım ve iki kez klavyemden tab tuşuna bastım ve program bana azır metod kalıbı verdi bu da aşağıdadır.
                if (Sayi % 11 == 0) ==> eğer sayı değişkenimin 11'e bölümünden kalan sıfırsa aşağıdaki işlemleri yap diyorum.
                {

                    Sol = 30; ==>Btn'nin sol değerini sabit tutuyorum çünkü amacım buttonları bir satırda 10 tane olacak şekilde yapmak istiyorum.
                    Yukari += 40; ==> Yukarı değerini arttırıyorum yani sol değeri eşit olarak bir alt satırda buttonlarım basılmaay devam edecek.

                }
                else ==> sayımın 11'e bölümünden kalan sıfır değilse aşağıdaki işlemleri yap.
                {
                    Sol+=30; ==> Btn'nin sol değerini arttırıyorum. yani her seferinde yeni button bi öncekinin yanına basılacak.
                    groupBox1.Controls.Add(Btn); ==> basılan buttonları groubBox1'e ekliyorum.
                }
                
            }
        }

void Btn_Click(object sender, EventArgs e) ==> bunu kendımız de yazabılırdık ama yukarıda söyledğim şekilde tab tuşuna iki kez basınca bu metod kendiliğinden oluşmuş oldu bize kalan içini doldurmak yani eventin içeriğini yazmak.
        {
            
            textBox1.Text += (sender as Button).Text; ==> button kontrolünün textini textBox1'e yaz diyorum.
        }

  private void BtnSil_Click(object sender, EventArgs e) BtnSil kontrolümün Click Event'ine geliyorum.
        {
            textBox1.Clear(); textBox1'i temizle diyorum ama bu komple siler son karakteri silmez.
        }

 private void BtnBoşluk_Click(object sender, EventArgs e) ==>BtnBoşluk kontrolümün Click Event'i
        {
            textBox1.Text += " "; ==> textBox1'e boşluk ekle diyorum.
        }

Okunma 7456 defa Son Düzenlenme Perşembe, 29 Mart 2012 08:19

Son Ekledikleri: Uğur USTAOĞLU