Giriş
.Net ortamında bazen kullanmakta olduğumuz tool(kontroller) bize yeterli olmayabilir. Bu Sebeple kendimiz daha gelişmiş bileşenler hazırlayabiliriz. Bu noktada devreye component kavramı girer. Bu makalemizde textboxımızı dahada geliştirip ortaya yeni bir bileşen çıkaracağız.
Uygulama
Öncelikle Solution kısmından projemize Add>>New Item? diyerek component class ekliyoruz. Ben oluşturacağım bileşenimin ismini my_text verdim. Daha sonra textboxımızı miras alıp bunun üzerinden bileşenimizi oluşturmamız lazım. Miras alma işlemini şu kod ile yapıyoruz.
Inherits Windows.Forms.TextBox
Bu aşamada artık elimizde textbox kontrolümüz var ve biz buna yeni özellikler ekleyebileceğiz. TextBoxımıza 2 özellik ekleyeceğiz. Mouse ile üzerine geldiğimizde textbox arkaplanı istediğimiz renge göre değişecek ve Mouse ile üzerinde değilken yine arkaplanı istediğimiz şekilde değişecek. Bunun için 2 tane property yazacağız.
- Özellik
Private _uzerinde As Color
Property uzerinde() As Color
GetReturn _uzerinde
End GetSet(ByVal value As Color)
_uzerinde = value 'Bu kısımda kullanıcıdan renk alınıyor.End SetEnd PropertyBu özelliğimizde kullanıcı property kısmında ?uzerinde? isminde yeni bir alan görecek ve bu alan aracılığı ile bir renk seçip mouse textbox üzerinde iken seçilen renkde olmasını sağlayacak.
- Özellik
Private _disinda As Color
Property disinda() As Color
GetReturn _disinda
End GetSet(ByVal value As Color)
_disinda = value 'Bu kısımda kullanıcıdan renk alınıyor.End SetEnd PropertyBu özelliğimizde kullanıcı property kısmında ?disinda? isminde yeni bir alan görecek ve bu alan aracılığı ile bir renk seçip mouse textbox dışında iken seçilen renkde olmasını sağlayacak.
Bu 2 özelliği eklemek ile kullanıcıdan sadece bu ilgili özelliklerden renk bilgilerini çekiyoruz. Şimdide sırada bu almış olduğumuz renk değerlerini ilgili eventlerde işlemek kalıyor. Bunun için 2 event kullanmalıyız.
my_text_MouseEnter à faremizin textbox üzerinde olduğu eventtir.
my_text_MouseLeave à faremizin textbox dışında oldğu eventtir.
Eventler
my_text_MouseEnter
Private Sub my_text_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseEnter
Me.BackColor = _uzerinde 'Burada kullanıcıdan alınan renk arkaplan rengi olarak işleniyorEnd Submy_text_MouseLeave
Private Sub my_text_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave
Me.BackColor = _disinda 'Burada kullanıcıdan alınan renk arkaplan rengi olarak işleniyorEnd Sub
Makalemizdeki örnek uygulamayı indirmek için tıklayın.