C# - Custom (User) Form Kontrolleri Oluşturma

C# dilinde genellikle Windows Forms Application projesi açtıktan sonra ToolBox'ta gördüğümüz her şey birer kontroldür. Form uygulamaları oluştururken ihtiyacımızı karşılayacak bütün kontrolleri barındırır.İstersek kendi kontrollerimizi de oluşturabiliriz.

Custom Control Oluşturma Nedenleri

  • Var olan kontrol isteklerimizi karşılamadığında yeni özellik (property) eklemek için
  • Birden fazla kontrolleri bir araya getirip kendi kontrollerimizi oluşturmak istediğimiz durumlarda kullanılır.

Örnek uygulamamızda bir tane TextBox kontrolü ekleyip uzunluk,cumleSayisi,CreatedBy ve BosGecilebilirMi özelliklerini ekleyeceğiz.
İlk önce File-New-New Project üzerinden Windows Forms Control Library seçiyoruz.









Açılan sayfadan UserControl(Design) kısmına Toolbox'tan bir adet TextBox sürüklüyoruz. Textbox'un MultiLine özelliği true olmalı.













Kod kısmına geldiğimizde istediğimiz özellikleri ekliyoruz.uzunluk,cumleSayisi ve CreatedBy özelliklerinde get metodunu kullanmamızın sebebi read only bir özellik yaratmamızdı.Yani kullanıcının değiştiremeyeceği bir özellik olmasıdır.



uzunluk:Girilen karakter sayısını 
cumleSayisi: Girilen cümle sayısını
CreatedBy: Kontrolü yaratan kişiyi
BosGecilebilirMi: Boş geçilip geçilemeyeceğini belirten özelliklerdir.







Kontrolümüzü hazırladıktan sonra projemizi build ettikten sonra bize bir .dll dosyası oluşacaktır.Proje dosyasında bin/debug klasörü altında bulabiliriz. Aynı zamanda ToolBox'ta  en üstte görünecektir.

Başka projelerinizde bu kontrolü kullanmak isterseniz ilgili toola sağ tıklayıp Choose Items dediğinizde oluşturduğumuz kontrolümüzü ToolBox'a ekleyebiliriz.

Add New Project ile yeni bir Windows Forms Application ekleyip oluşturduğumuz bu kontrolü test edebiliriz.



Görselde de gördüğünüz gibi özelliklerimiz eklenmiş. Eğer yeni özellikler eklediğinizde değişikliklerin yansıması için projenizi build ederek derlemeniz gerekir.


Bu kodlarda form yüklendiğinde ve buton tıklandığında yapılacak işlemleri belirttik. userControl1'in uzunluk ve cumleSayisi ozelliklerini label3 ve label4'e yazdırdık.




Herhangi bir sorunuz olduğunda buradan iletişime geçebilirsiniz.

Yorumlar