vb编程实例讲解、告诉我一些简单的vb编程代码?( 六 )


表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"窗体首次装入内存时发生的事件:"
Load Form2
Debug.Print"用Unload卸载窗体时发生的事件:"
UnloadForm2
Debug.Print "窗体第二次装入内存时发生的事件:"
Load Form2
Debug.Print "用Unload卸载窗体时发生的事件:"
Unload Form2
Debug.Print "用Set窗体名=Nothing语句解除初始化时发生的事件:"
Set Form2=Nothing
Debug.Print "窗体第三次(解除初始化后)装入内存时发生的事件:"
Load Form2
End Sub
'Form2窗体事件过程
Sub Form_Initialize()
Debug.Print"Initialize事件"
End Sub
Sub Form_Lond()
Debug.Pnnt"Load事件"
End Sub
Sub Form_QueryUnload(Cancel As hteger, UnloadMode As Integer)
Debug.Print"QueryUnload"
End Sub
Sub Form_Unlond(Cancel As Integer)
Debug.Print"Unload"
End Sub
Sub Form_Terminate()
Debug.Print"Terminate"
End Sub
当用户在Form1上单击时,在Debug窗口显示下列信息:
窗体首次转入内存时发生的事件:
Initialize事件
Load事件
用Unload卸载窗体时发生的事件:
Query Unload
Unload
窗体第二次装入内存时发生的事件:
Load事件
用Unload卸载窗体时发生的事件:
QueryUnload
Unload
用Set窗体名=Nothing语句解除初始化时发生的事件:


推荐阅读