Önceki bölümde oluşturduğumuz projedeki superText kontrolünü geliştirmeye devam ediyoruz.
Önceki bölümde, son aşamada bir sorun olduğunu belirtmiştim. Projeyi çalıştırdığınızda göreceksiniz ki superText'in Metin özelliğine girdiğimiz bilgiler program çalıştırınca kayboluyor. Çalışmayı durdurunca da geri gelmiyor. Bu hatayı giderelim.
PropertyBag
ActiveX kontrollerin özelliklerinin tutulduğu bir nesne var. Nesnenin adı
PropertyBag. Bu nesnenin fonsiyonları ile özellik değerleri yazılıp
okunabilir.
WriteProperty fonksiyonu özellik değeri okumak
için,
ReadProperty ise özellik değeri yazmak içindir.
- superText kod penceresine aşağıdaki kodları ekleyin
Public Sub UserControl_ReadProperties(PropBag As PropertyBag) Text1.Text = PropBag.ReadProperty("Metin", UserControl.Name) End Sub Public Sub UserControl_WriteProperties(PropBag As PropertyBag) Call PropBag.WriteProperty("Metin", Text1.Text, UserControl.Name) End Sub
- Şimdi projedeki test formuna(Form1) superText kontrolünden ekleyin, Metin özelliğini değiştirip çalıştırın.
-
Göreceksiniz ki artık Metin özelliği standart Textbox'ın
Text özelliği gibi çalışıyor.
Metin özellik değerleri kaybolmuyor.
ReadProperties özelliği okumaya çalıştığımızda,
WriteProperties ise özelliğe yazmaya çalıştığımızda çalışır. -
Test formunun Click olayında aşağıdaki kodu deneyebilirsiniz.
Bu kodlar ile superText'in Metin özelliğine değer atanmaktadır.
Private Sub Form_Click() superText1.Metin = "Merhaba" End Sub
Önceki bölümde superText kontrolümüzün Metin özellik değerini kontrolün Name değerinden alarak superText olarak yazdırmıştık.