15 Ekim 2009 Perşembe

C# - Label, TextBox, Button ; Temel kontroller


Tekrar merhaba. "Bir C# uygulamasının olmazsa olmaz kontrolleri hangisidir?" sorusunun cevabına bakacağız bu bölümde. Soruyu hemen cevaplamasam mı acaba? heycan olsun biraz dimi :P Neyse fazla kızdırmadan söyleyeyim; Cevap; (tabiki başlıktan kopya çektim) Label, TextBox ve Button'dur arkadaşlar.

Peki "Kontrol" nedir? Kontroller yapacağımız uygulamanın çeşitli özelliklerini değiştirip atamamıza yardımcı olan metotlardır diyebiliriz. Yani daha önceden kullanım kolaylığı sağlamak ve aynı şeyleri defalarca yazma külfetinden bizi kurtarmak için, bir kere yapılır daha sonra kullanılır. Metot kavramına daha sonra değineceğiz.



Label : Kaba tabirle; Metin göstermeye yarayan kontrol diyebiliriz.

TextBox : Kullanıcının yazılım ile haberleşmesini sağlar. Ör) Kullanıcı TextBox'a birşeyler yazar, uygulamada bu verileri, bilgileri alıp kullanır.

Button : En basit Event tetikleyici kontrollerden birisidir. Button'a tıkladığımızda o Button'un "Click" event'i çalışır.

Şimdi uygulamamıza geçelim: Amaç şu olsun: TextBox'ımıza birşeyler yazalım ve yazdıklarımızı bir Button'a basıp gösterelim.

Yeni bir Windows Application açıyoruz. İsmini siz verin yine.
ToolBox'ımızın "Common Controls" kısmından Form'umuza bir Label atıyoruz. Label ilk eklendiğinde default olarak bazı özelliklerle gelir. F4'e basıp Label'ımızın özelliklerine bakabilir, değiştirebiliriz.

Bazı Label Özellikleri :

BackColor : Tahmin edebileceğiniz gibi Label'ın arka plan rengini ayarlar.
BorderStyle : Label'ın kenarlarının nasıl olacağını belirler.
Font : Font'unu ayarlamamıza yarar. Boyut,yazı tipi gibi özellikleri barındırır.
Text : Label'da ne yazacağını ayarladığım özelliktir. Şuan mesela 'label1' diye gelmiştir. Çünkü default olarak o Label'ın Name özelliğini alır text'ine.
TextAlign : Label'da yazan yazının nerede duracağına karar verir. Ör) TextAlign = Left gibi
(Name) : Label'ın kod tarafında hangi isimle adlandıralacağını, çağırılacağını belirler. Default olarak Form'a eklediğiniz kaçıncı label ise "label""kaçıncı label" şeklinde gelir. Ör) Biz ikinci bir label eklersek name i 'label2' olacaktır.
AutoSize : Label'ın boyutunu ayarlamak için kullanılır.Bu özellik True olur ise; Label'ı tek boyutta kullanırız. Yani satır sonunda bir alt satıra geçip devam etmez, sürekli sağa doğru yazmaya devam eder. False yaparsak serbestlik kazanırız. Boyutuna karışma ben vericem gibi birşey diyoruz yani.

Şimdi Label'ımızın Text özelliğine birşeyler girelim. Text'ine "Hoş geldin müdür, yaz bakalım birşeyler sende" diyorum. Tamamdır

Sıra geldi TextBox'a. ToolBox'tan TextBox ekliyorum formuma. Sağ tarafındaki icon'u çekerek uzatıyorum. Güzel görünsün biraz. TextBox, genelde uygulama çalıştığında kullandığımız birşey olduğu için pek fazla özellikleriyle uğraşmayız. Çünkü kullanıcı gelir ve oraya birşeyler yazar sonra bir button'a falan tıklar değilmi? İşte bizim için kritik nokta Button'a tıklanma noktasıdır. Oraya doğru kodları yazar ve uygulamayı geliştiririz. Ok TextBox'la işim bitti.

ToolBox'tan Button'umuzu da ekliyoruz. Gördüğünüz gibi yine çekip kısarak Button'un buyutuyla oynayabiliyoruz. Fakat Button'un üzerinde button1 yazıyor değilmi? Siz hangi button'un üstünde button1 yazdığını gördünüz şimdiye kadar? :) Ne yapıcaz; Hemen F4 ile özelliklerine gidip aynen Label'da olduğu gibi Button'un Text özelliğine "Göster" diyelim.
Göstersin ama nerede? Yeni bir Label daha ekliyoruz ToolBox'tan. Label2 nin Text'i "Burada göstericem" olsun.


DipNot: Aslında hiç bir zaman uygulama geliştirirken bu şekilde ilerlemeyin. Her zaman önce kontrolleri ekleyin daha sonra onlara isim verin, özellik atayın. Çünkü hızınız azalır.
Dipnot2: Hiç sevmediğim birşey Form'un isminin Form1 olarak kalmasıdır. Onuda değiştirmek için. Form'a tıklayıp (yani pencere içinde boş bir yere) F4 yapıp Text'ine "Label TextBox Button" yazıyorum.


Ok herşey hazır. Design tamamlandı. Şimdi geldik bizim işimize. Kod ne olacak? Yada kod ne zaman çalışacak? İsterseniz bunları daha iyi anlamak için. F5 yapıp uygulamamızı bir çalıştıralım.
Şimdi. Bu uygulama nerede tetiklenmeli? Düşünün textbox'a yazıyı yazdınız Button'a bastığınızda yazı alta label'a yazılacak. Ozaman Button burda kritik nokta. Kod'u Button'un Click Event'ine (click olayına) yazmamız gerekir. Bunun için Button'a gelip çift tıklayıp kod tarafına geçiyoruz.

İlk olarak TextBox'ta ne yazdığını aklımızda tutmamız gerekir öyle değilmi? Yoksa nasıl alıp başka bir yere yazıcaz. İşte bu işlem daha öncede anlattığım gibi Değişken tanımlayarak yapılır. Bir değişken ve tip'ini tanımlarsınız daha sonra bu değişkene bir değer (value) verirsiniz. Ve istediğiniz yerde bu değişkeni kullanırsınız.

Değişkenimi tanımlıyorum:

        string textCumle = textBox1.Text;
Yorumu:Tipi "string" olan, ismi "textCumle" olan ve değerini textBox1'in Text'inden alan bir değişkenim oldu. textBox1 de o an ne varsa hepsini aldı textCumle'ye yazdı ve bunu aklında tutuyor şuan.

Yazdılarım Label'a:
       label2.Text = textCumle.ToString();
Yorumu: label2 nin text'ine textCumle'yi ata(atamak yazdırıyor aslında). Burada toString() metodu; ASCII kod'ları bizim bildigimiz karakterlere çevirme işlemini gerçekleştirir. ASCII kod'lara daha sonra değineceğim. Taktir edersiniz ki Bilgisayar bizim yazdığımız harfleri nereden algılasın değilmi. O sadece "1010011" şeklinde görür bunları. CLR sağolsun diyip geçiyorum.


F5 yapıp deniyorum: Ok mişın ekomplişt!
Kolay gelsin, görüşmek üzere...

KODLAR:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            string textCumle = textBox1.Text;
            label2.Text = textCumle.ToString();
        }
    }
}

1 yorum:

  1. label9.Content =Ic; böyle bir gösterimde label a Ic=sayı değeri; nasıl yazıdırırım teşekkürler;

    YanıtlaSil