Respond needs javascript to run. To find out more click here
c# user control » Serdar Demir
RSS
 

Posts Tagged ‘c# user control’

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.


 
4 Comments

Posted in C#, Makaleler