vb程序设计实用教程 vb程序设计实例100( 五 )



创建实时菜单的步骤:

(1)在菜单编辑器中建立样本菜单项

样本菜单项的属性设置见表2.8.4所示 。设置Index为0,表明样本菜单项是控件数组的一个元素,其下标为0 。样本菜单项的Name属性是必须的,它将作为控件数组的名称 。在下面假定数组名为NameArray 。Visible可以设为True,设为False表示初始时该菜单项不可见 。

表2.8.4实时菜单样本菜单项

属性NameCaptionIndexVisible

设置值必需的可以没有0False

(2)在程序中用Load语句创建菜单项

例如,Load NameArray(1)创建一个新的菜单项(在控件数组中的下标为1,然后将其 Visible属性设置True,同时设置Caption属性 。

动态创建的菜单项继承了除了Index之外的绝大部分属性,所以要对Caption和Visible属性进行设置 。另外,样本菜单项在菜单系统中的位置决定了新菜单项出现的位置 。

(3)为实时菜单项编写代码

每个实时菜单项都是控件数组的一个成员,具有相同的名称,并且共享事件过程 。

下面是一个实时菜单项代码示例:

SubNameArray_Click(Index As Integer)

Select Case Index

Case0

MsgBox("NameArmy(0)(样本菜单项) is clicked!")

Case1

MsgBox("NameArray(1)(第一个实购菜单项) is clicked!")

Case2

MsgBox("NameArray(2)(第二个实时菜单项) is clicked!")

End Select

End Sub

(4)删除实时菜单项

尽管把Visible设为False,程序运行时实时菜单项不会显示,然而有时还是需要把实时菜单项从内存中销毁 。删除实时菜单使用UnLoad语句 。例如,LoadNameArray(1) 。

有关建立实时菜单的详细内容请参阅教程第4.3节 。

5.通用对话框的CancelError属性和Err对象

当通用对话框的CancelError属性为True时,无论何时选择"取消"按钮,均产生 32755(cdlCancel)号错误,即将Err的Number属性设置为32755 。

Err是VB的一个系统对象,它记录了程序运行期间所发生的错误 。

Err对象的重要属性有Number(默认属性)和Description 。当错误发生后,错误的生成者把错误号和有关错误的说明分别存放在Number和Description属性中 。例如,当在 CancelError属性为True的通用对话框中选择"取消"按钮时,产生一个错误,Err对象的Number和Description属性将被设置为32755和"选择'取消'" 。

在程序运行期间,经常会发生各种各样的错误 。有关错误处理的详细内容请参阅教程第 9.6节 。

下面是当程序产生cdlCancel错误时结束程序的运行 。

SubForm_ClickO

CommonDialogl.CancelError=True

On Error GoTo ErrorHandler

CommonDialogl.Action=l

' 处理文件的语句

ErrorHandler:

If Err.Number=cdlCancel Then

End

Endlf

End Sub

6.与窗体有关的事件

在首次用Load语句将窗体(假定该窗体在内存中还没有创建)调入内存之时依次发生 Initialize和Load事件 。再用UnLoad将窗体从内存中卸载时依次发生QueryUnLoad和Unload事件,再使用Set窗体名=Nothing语句解除初始化时发生Terminate事件 。

Initialize是在窗体创建时发生的事件 。在窗体的整个生命周期中,Initialize事件只触发一次 。用户可以将一个窗体装入内存或从内存中删除很多次,但窗体的建立只有一次 。也就是说,在用Load语句将窗体装入内存时会触发Load事件,但并不一定触发Initialize事件 。

在用UnLoad语句卸载窗体后,如果没有使用Set窗体名=Nothing解除初始化,则在下次使用Load语句时不会触发Initialize事件,否则会引起Initialize事件 。

假定有Forml和Form2两个窗体,并且有下列事件过程:

' Forml窗体事件过程

Sub Form_Click()

Debug.Print"窗体首次装入内存时发生的事件:"

推荐阅读