2、添加控件的“属性”
双击 "MyControl"控件,进入其代码窗口,选择"工具"选单中的"添加过程"项,在对话框中输入名称为 "UpdateInterval",类型选"属性",关闭对话框后代码窗口内将出现两个空过程,填写代码如下:
Pubic Property Get UpdateInterval() As Variant
UpdateInterval = Timerl.Interval
End Property
Public Property Let UpdateInterval(ByVal NewValue As Variant)
Timerl.Interval = NewValue
PropertyChanged "UpdateInterval"
End Property
其中前者用于获取UpdateInterval属性,后者用于设置UpdateInterval属性。
现在关闭控件设计窗口,打开测试工程的窗体,点击窗体中的控件MyControl,看一下其属性窗口,出现了一个 "UpdateInterval"属性,且值为1000,这是我们最初为控件设定的Interval属性。现在改变该属性值为3000,会发现控件上时间更新慢了,与原Timer控件属性一样。
3、添加控件的“事件”
在测试工程的代码窗口中,当前只有GotFocus、LostFocus、DragOver和DragDrop四个事件;而一般常用的事件包括Click、DblClick、KeyDown、KeyPress、KeyUp、MouseDown、MouseMove和MouseUp,下面以Click为例进行说明。
选取“工具”选单中“添加过程”项,在名称中填写“Click”,类型为“事件”。我们会发现代码窗口中“通用”项下出现如下代码:
Option Explicit
Public Event Click ( )
注意这是的“Click”与鼠标的Click毫无关系,为了将它们联系起来,在控件工程的代码设计窗口中加入MyTime 、IblTime的Click事件,代码如下:
Private Sub MyTime-Click ( )
RaiseEvent Click
End Sub
Private Sub IblTime-Click ( )
RaiseEvent Click
End Sub
RaiseEvent的功能是把控件或其上的子控件的事件进行转发,因为控件总是由其它的子控件组成,比如上面lblTime的Click事件转为控件的Click事件。
现在关闭控件设计窗口,打开测试工程,在MyControl的过程列表中,发现多了事件Click,点击Click,添加代码如下:
Private Sub MyControll-Click ( )
MyControll . UpdateInterval = 3000
MsgBox (`UpdateInterval:` &MyControll . UpdateInterval )
End Sub
运行测试工程,点击窗口中显示的时间,会弹出一个Message对话框,显示了刚设定的UpdateInterval属性值是3000。
4、添加控件的“方法”
选取 "工具"选单中 "添加过程"项,在对话框中填写名称 "CallMe",类型为 "函数"。代码窗口将产生如下代码:
Public Function CallMe ( ) As Variant
MsgBox(`当前方法正在运行!`) '加入本行代码
End Function
在测试工程的MyControll-Click()过程中加入语句:MyControll. CallMe,运行后点击显示时间处会出现使用此方法产生的Message对话框。
5、为控件打包
运行VB5的“安装程序向导”可以将已完成的工程生成自解压CAB文件,选择“创建Internet下协载安装程序”项,按提示完成即可。