Kodlamaya gelirsek, düşünmemiz gereken şey, oluşturucağımız TextBox'ın, TextBox sınıfından kalıtılması olmalıdır, çünkü tüm özellikleri normal TextBox ile aynı olacak. Sadece ekleyeceğimiz şeyler olacak.
O zaman uygulamamıza yeni bir class ekleyip, onu TextBox sınıfından kalıtalım.
class NumericTextBox:TextBox
Daha sonra NumericTextBox sınıfının constructor'ında, senaryomuzu yerine getirecek eventi bulup, onu tetikliyoruz. Bu örnek için, nümerik karakter haricinde başka bir karakter girilmesin, sadece nümerik karakterlerin girişine izin verilmesini istiyorsak, kullanacağımız event KeyPress eventi olmalıdır. Bu eventi tetikledikten sonra, girilmesini istemediğimiz karakter kodlarını girip, programımızı çalıştıracağız. Yazacağımız kod şu şekilde olacaktır;
class NumericTextBox:TextBox
{
public NumericTextBox()
{
this.KeyPress += new KeyPressEventHandler(NumericTextBox_KeyPress);
}
void NumericTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsNumber(e.KeyChar) && !char.IsControl(e.KeyChar); //rakam degilse giris yapamasin ve backspace,delete tarzi kontrollere de izin verilmesin
}
}
Şunu da hatırlamakta fayda var. Oluşturacağımız bir class'ı, herhangi bir kontrolden kalıttığımız zaman, bu classın(yani yeni kontrolümüzün-custom control-) toolbox'da en yukarıda oluşacağını hatırlatmakta fayda var.
Uygulamamızı çalıştırdığımız zaman göreceğiz ki, oluşturduğumuz TextBox'ın, diğer TextBox'lardan görünüm ve görev bakımından hiçbir farkı yok, ekstra olarak sadece rakamlara ve delete,ctrl,backspace tarzı kontrollere izin verecektir. Artık, tüm sayfalarımızda, bu TextBox'ı sürükleyip bırakarak rahatça erişebileceğimiz gibi, değişiklik yapmak istediğimiz zaman da tek bir yerden düzeltmelerimizi yapabileceğiz.
0 yorum:
Yorum Gönder