PDA

View Full Version : سوال: استفاده از Property در ActiveX Control



Pr0grammer
سه شنبه 08 مرداد 1387, 23:54 عصر
سلام...
من براي اکتيوايکسي که طراحي کردم دوتا Prpperty با کد زير تعريف کردم؛



Public Property Get ForeColor() As OLE_COLOR
ForeColor = TxtStartingUp.ForeColor
End Property

Public Property Let ForeColor(ByVal ForeColor As OLE_COLOR)
TxtStartingUp.ForeColor = ForeColor
PropertyChanged ("ForeColor")
End Property

و


Public Property Get BackColor() As OLE_COLOR
BackColor = TxtStartingUp.BackColor
End Property

Public Property Let BackColor(ByVal BackColor As OLE_COLOR)
TxtStartingUp.BackColor = BackColor
PropertyChanged ("BackColor")
End Property

بعد از Mack کردن و اضافه کردن به پروژه EXE ، هنگام طراحي فرم اگه اين مشخصه ها رو تغيير بدم، تغييرات اعمال ميشه اما زماني که برنامه اجرا مي کنم، حالت اکتيوايکسم به حالت اول برمي گرده ( انگار نه انگار تغيير مثلاً رنگ BackColor رو عوض کردم) ؟!!!!
ممنون ميشم راهنمائيم کنيد

Mbt925
چهارشنبه 09 مرداد 1387, 00:40 صبح
این کدها رو به برنامتون اضافه کنید.





Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
BackColor = PropBag.ReadProperty("BackColor", &H8000000F)
ForeColor = PropBag.ReadProperty("ForeColor", vbBlack)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("BackColor", TxtStartingUp.BackColor, &H8000000F)
Call PropBag.WriteProperty("ForeColor", TxtStartingUp.ForeColor, vbBlack)
End Sub




شما باید ابزارنویسی رو از پایه و مفهومی کار کنید، این روش سودی نداره!