 |
必须同时定义property set 和property let,两者缺一不可。你需要加上Property Let过程,如:
Public Property Let Picture(ByVal New_Picture As Picture)
UserControl.Picture = New_Picture
PropertyChanged "Picture"
End Property
更详细的内容可以参考我写的《Visual Basic编程晋级:ActiveX控件》(http://china.zealsoft.com/articles/vbactivex/)一书。
张列问:
谢谢李海,可是很遗憾。实际上这样定义的属性无法调用(错误的参数号或无效的属性赋值),因为vb把picture类型当作对象,必须用property set,调用的时候也必须用set。
答:Picture类型是一个比较特殊的类型,虽然它是对象,但它可以象普通变量那样使用Property Let过程定义,并可以不使用Set语句进行赋值。如果没有Property Let过程,就会出现你说的错误。这里是一个例子 picctl.zip。在例子中,我使用UserControl11.Picture = LoadPicture("c:\win98\Carved Stone.bmp")进行的赋值。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, ActiveX技术, activex, com, ado。
|