![]()
C# Ta user kontrol kullanımı
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.

Linq to sql e ilk adımımız
Öncelikle projeyi açıp add new item diyerek linq to sql class ekliyoruz.
Bize bir sayfa oluşturacak bu sayfada ise solution explorer dan projemizde kullanacağımız tabloları sürükleyip bu alana bırakıyoruz nortwind tablosunun category ve products tablosunu ekliyorum. Linq to sql bu tablolar arasında olan bire çok ilişkiyi otomatik oluşturuyor. Eğer bu işlemi manuel yapmak istersek toolbaxtan “Association” ekleyip ilişkiyi siz beliryebilirsiniz. Bu kısımda tablo isimlerini değiştirmek isterseniz yine bu kısımda tablolarınızı türkçeleştip kullanabilirsiniz
