Uefa Maçları Canlı İzle
RSS
 

C# ta User Control Kullanımı

13 Nis


C# Ta user kontrol kullanımı

User kontroller nelerdir öncelikle biraz bundan bahsedelim bildiğimiz gibi c# ta bütün nesneler bizim toolboxtan eklediğimiz buton label textbox… gibi kontrollerin hepsi aslında “control” sınıfını baz alarak oluşturulurlar kontorl sınıfında ortak işlevler mesaj fonksiyonları ortak eventlar bulunur. Bunu designer kısmına geçip kontrolümüzün Metadatasına bakarak aslında control sınıfından türetilerek oluşturulduğunu görürüz.
public abstract class ButtonBase : Control

Peki user controller ne işe yarar? Örneğin projenizde  bir textboxımız var ve bu textboxa girilen değerler için validation işlemleri gerçekleştirmek istiyoruz bu işlemi yapabilmek için user kontrolleri kullanarak elimizdeki textboxa bu yetenekleri ekleyip yeni bir kontrol oluşturuyoruz (eğer kullanıcı geçersiz mail girerse uyaracak gibi..)

Bana göre User controllerin faydasını farklı bilgisayarlarda uygulama geliştiren programcılar için bulunmaz nimet J. Şöyle ki siz label kontorolünü kullanarak bir saat kontrolü yaptınız bu dll i referans olarak projesine ekleyen herkes bu saat kontrolünü problemsiz kullanabilir.

Şimdi bizde labelları kullanarak kendimize bir saat kontrolü yapalım;

1-Öncelikle NewProject diyerek yeni bir WindowsFormsControlLibrary ekliyoruz bize boş bir panel oluşturuyor buraya 3 adet label ve 3 tane de timer ekliyoruz.(S=Saat D=Dakika S=Saniye)

Saatimizin çalışma mantığı şu olacak: Programın çalıştığında o andaki saati alacak timer ile saniyeyi arttıracak 60 a geldiğinde o andaki dakikayı alıp label 2 ve dakika da 60 olduğunda saatimizi bir attrıcak.

Bu işlem için timer kontollerimizin Enabled özelliğini True ve Intervallerini 1000(1 sn) olarak ayarlıyoruz. Kod kısmına geçiyoruz;

//Saniye ve dakika bilgilerini tutacağımız global değişkenler
int i = 0;

int y = 0;

int z = 0;

private void UserControl1_Load(object sender, EventArgs e)

{

//Program ilk çalıştığında o anki saat bilgisini alıyoruz.

label1.Text = DateTime.Now.Second.ToString();

label2.Text = DateTime.Now.Minute.ToString()+":";

label3.Text = DateTime.Now.Hour.ToString()+":";

}

private void timer1_Tick(object sender, EventArgs e)

{

//saniye bilgimizi timer ile yeniliyoruz.

label1.Text = DateTime.Now.Second.ToString();

y = Convert.ToInt32( DateTime.Now.Second);

}

private void timer2_Tick(object sender, EventArgs e)

{

y++;

//saniye 60 ise label 2 yi o anki dakika ile guncelle

if (y % 60 == 0)

{
//Z değişkenine dakika değerini atıyoruz saat kısmında kullanacağız.

z = Convert.ToInt32(DateTime.Now.Minute);

label2.Text =+":"+DateTime.Now.Minute.ToString()+":";

}

}

private void timer3_Tick(object sender, EventArgs e)

{
//Dakika 60 ise o anki saat bilgisini al

if (z % 60 == 0)

{

label3.Text = DateTime.Now.Hour.ToString();

}

}

Bu kodları “Build” menüsünde derlediğimizde bize bir ader dll oluşturuyor. Şimdi  yeni bir form uygulaması açalım toolbaxa gelelim

(not= bu arada şunu da söylemek istiyorum ekledğimiz kontrolleri toolbaxa ayrı bir tab olarak Add Tab diyerek ekleyebiliriz. ) Toolbax ta sağ tıklayıp choose items diyerek oluşruduğumuz dll i gösteriyoruz ve toolbaxa  bizim saat kontolümüzü ekliyor şimdi bunu forma sürükleyip bıraktığımızda hiç bir işlem yapmadan saat nesnemizi kullanbileceğiz. Kontolümüzün çalışır hali.


 
5 Comments

Posted in C#, Makaleler

 

Tags: , ,

Leave a Reply

 

 
  1. Костя

    29 Mayıs 2010 at 09:41

     
  2. alper

    06 Mart 2011 at 07:52

    teşekkürler

     
  3. umut

    03 Mayıs 2011 at 15:46

    kardes burdaki int = i; taımlamışsın ne alakası var kullanmamışsın da :D

     
  4. yetersiz

    22 Aralık 2011 at 03:29

    Çok açıklayıcı değil. daha güzelini bekliyoruz

     
  5. aziz

    14 Şubat 2012 at 16:37

    teşekkürler. olumusz eleştiri yapanları ise firavun misali insanlar hi.birşeyi beğenmezler bunlar.. herşeyde öğrenilcek birşey vardır..