VB开发OCX控件的属性之自定义列表项

我们在开发OCX控件的时候,某些功能需要在属性中展示给用户选择,比如像下图窗体属性的边框样式一样:
在这里插入图片描述
那么像这样的下拉式列表是怎么编写的呢?其实很简单,我们在添加过程属性之前,自己定义一个列表类型,如下:
Public Enum Style
[None] = 0
[Fixed Single] = 1
[Sizable] = 2
[Fixed Dialog]=3
[Fixed ToolWindow]=4
[Sizable ToolWindow]=5
End Enum
“Style”是类的名称(自设),而这个类里面的“0-1-2-3-4-5”便是该类中包含的成员,“[]“中的字符串可以是中文或其他语言,但”=“后必须是数字,字符串和等号后的数字是对等的,在设计中可以用”[]“里的字符串或相应的数字相互对替。
以上就是一个拥有"0-5"个成员的类"Style”,接下来就可以写一个输入输出的属性了,但在这之前,我们得先以这个类定义一个变量,方便系统读写用户的设置,如下:
Dim Modality As Style
“Modality"为自定义的变量名称,而"Style"就是上面我们自己定义的类,这个变量声明"Modality"拥有类"Style"中的所有成员。
添加属性我们可以在菜单上的"工具”-“添加过程”,打开"添加过程"对话框,名称自设,比如"BorderStyle”,这个名称就是在我们的OCX控件属性中出现的名称,类型选"属性",范围选"公有的",若选择"私有的",“BorderStyle"是不会显示在属性页中的哦,如下图:
在这里插入图片描述
确定添加后,我们将其类型更改为"Style”,如下:
Public Property Get BorderStyle() As Style

End Property
Public Property Let BorderStyle(ByVal vNewValue As Style)

End Property
第一个函数Get表示输出(也就是显示用户选择的成员),第二个函数Let表示输入(也就是用户选择的结果输入),而"vNewValue"就是输入的数据,添加过程如下:
Public Property Get BorderStyle() As Style
BorderStyle = Modality
End Property
Public Property Let BorderStyle(ByVal vNewValue As Style)
Modality = vNewValue
'这里添加即时过程或者重绘过程等。
PropertyChanged “BorderStyle”
End Property
第一个输出的过程"BorderStyle = Modality"就是将"Modality"的数据传送给"BorderStyle",显示用户选择的结果;第二个"Modality = vNewValue"就是将用户输入的"vNewValue"数据存储到"Modality"变量中,而"PropertyChanged “BorderStyle”"这句告诉系统数据已经变动。
最后是属性怎么在设计时存储属性值的,要实现这个过程我们得用到UserControl中自带的两个读写事件:“WriteProperties"和"ReadProperties”,"WriteProperties"为存储属性值到内存中,而"ReadProperties"将存储的属性值从内存中读取出来。如下:
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty(“BorderStyle”, Modality, 0)
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Modality = PropBag.ReadProperty(“BorderStyle”, 0)
End Sub
第一个存储属性值:
Call PropBag.WriteProperty(“属性名称”, 当前值, 初始化属性值)
第二个读取属性值:
读出的属性值 = PropBag.ReadProperty(“属性名称”, 初始化属性值)
注:属性名称可以是属性本身的名称,不是绝对的,也可在属性函数中定义其他的名称,但一定要一样的!
到这里一个OCX控件属性的编写就结束了,测试,打开Form窗体,在左边的部件栏中单击刚编写的UserControl控件图标,然后在Form窗体中拖出一个UserControl1控件,在这个控件的属性栏我们就可以看到"BorderStyle"这个属性了。呵呵~是不是很简单呢。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.动画及多媒体播放类 anigif6.ocx 动画播放gif文件控件 gif89.dll 又一个播放gif文件的动态链接库 gifPlayer.ocx 又一个播放gif文件控件 flash.ocx 能播放flash动画文件 Digital.ocx 数码显示数字、时间,挺漂亮 MovingChar.ocx 循环移动的字幕 wmp.ocx 提供的ActiveX控件制作媒体播放器 2.界面元素类 2.1.窗口类 asBubbleForm.ocx 显示图片信息提示的窗体控件,外形似帮助提示,弹出气泡式对话框 2.2.分隔条类 splitbar.ocx 窗口分割控件 2.3.工具条类 vbalExpBar6.ocx 不明,没用过 2.4.按钮类 CurtButton.ocx CurtButton 多风格按钮控件 JwldButn2b.ocx 漂亮的VB按钮,可以随意改变按钮表面和按下去时的边框颜色 SmartXpButton.ocx 一个VC开发的美观的XP按钮播放activeX控件 2.5.选卡类 tabctl32.ocx 圆角选控件 prjXTab.ocx 又是一款圆角选控件,类似tabctl32.ocx 2.6.列表框类 SBLIST.OCX 界面很酷的列表控件 vbalIml6.ocx 类似ImageList的图象控件 2.7.菜单类 asAssistantPopup.ocx 弹出管理菜单 2.8.皮肤类 YFSkins.ocx 非常美观的皮肤控件 VBOCX.OCX 允许你的应用程序的标题栏颜色为任意渐变色 3.系统类 asctrls.ocx 系统控件,用来安装active控件的,一般用不着 dmview.ocx 磁盘管理控件 fldrvw71.ocx 目录查看、选择、也可以显示文件,功能很强,但可能需要注册 proctexe.ocx Intel 程序纹理,进程信息查询 shlobj71.ocx 以系统默认的正常形式打开程序 sysmon.ocx 系统性能监视的ActiveX控件 Wxini.ocx 好象是读取ini文件的,没用过 4.内置类(VB或Windows系统自带的) combobox.ocx 下拉选择控件 comct232.ocx Animation1动画和UpDown comctl32.ocx 包含toolbar、treeview、listview、imagelist等(5.0) comdlg32.ocx 对话框 dbgrid32.ocx vb5的数据网格控件 dblist32.ocx vb5的数据列表控件 hhctrl.ocx Microsoft帮助文档界面相关文件 msdxm.ocx 媒体播放 msflxgrd.ocx 数据网格控件 mshflxgd.ocx 数据网格控件,是对msflxgrd.ocx的升级 msscript.ocx ScriptControl控件 mswinsck.ocx 网络通讯控件 richtx32.ocx 富文本框控件,增强文本数据显示 wshom.ocx 是Windows本地脚本对象运行时相关文件 5.未归类 MoveLabel.ocx 不明,没用过 LeftMenu.ocx 不明,没用过 daxctle.ocx 不明,没用过 chklsb26.ocx 好象超级兔子软件用到 ?gktube.ocx 孤独剑漏掉了 ?NewCombo.ocx 孤独剑漏掉了 tdc.ocx 相关表列数据ActiveX控件,没用过

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘上的舞指

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值