vb编程实例讲解、告诉我一些简单的vb编程代码?( 五 )
(3)当某域的内容发生变化时,此时涉及Change事件 。
CausesValidation属性和Validate事件通常是协同工作的 。
CausesValidate属性决定Validate事件是否发生 。如果控件的CausesValidate属性为False,该控件的Validate事件永远不会发生 。如果控件的CausesValidate属性为Tree,当焦点企图移到(还没有离开,也可以说离开之前)另一个CausesValidate属性为True的控件时,原控件的Validate事件发生:当焦点企图移到另一个CausesValidate属性为False的控件时,原控件的Validate事件暂时不发生,什么时候发生?直到焦点移到一个CausesValidate属性为True的控件上时才发生 。
例如,假定有如图2.7.2所示的程序 。当焦点企图从Textl移到Text2时,Textl的Validate事件发生,同样当焦点企图从Text2移到Textl时,Text2的Validate事件发生 。当焦点企图从Textl移到Text3时,TextI的Validate事件暂时没有发生,因为Text3的CausesValidate为False,然后如果焦点企图继续移动到Text2时,Textl的Validate事件才发生 。
图2.7.2CausesValidate属性和Validate事件
CausesValidate属性和Validate事件的这一特性常常应用在如图2.7.3所示的程序中 。当在文本框中输入了无效数据时而又不知道如何输入有效数据时,用户往往选择Help命令寻求帮助或选择Cancel命令结束数据输入,此时不希望执行验证程序 。因为如果执行验证程序且发现了无效数据,则无法选择Help或Cancel了,用户就这样被套住了 。现在只要将文本框的CausesValidate属性设为True,命令按钮的CausesValidate属性为False,验证程序放在 Validate过程中,问题就解决了 。在默认情况下,所有控件的CausesValidation属性都为Tree 。
图2.7.3命令按钮的CausesValidate属性和Validate事件
并不是所有的控件都有Validate事件 。只有那些能用于输入数据的控件(如文本框、复选框、滚动条等)才有这个事件 。Validate事件过程如下:
Privme Sub object_Validate(Cancel As Boolean)
…
EndSub
其中,当参数Cancel被设为Tree后,焦点将不会离开对象 。
如果要将实验七第1题改用Validate事件和CausesValidation属性实现数据验证,则应有如下的程序 。
Sub txtMath_Validate(Cancel As Boolean)
If Val(txtMath.Text)<0 Or_
Val(txtMath.Text)>100 Then
Cancel=True
End If
End Sub
1.窗体顶部菜单栏中的菜单项与子菜单中的菜单项的区别
窗体顶部菜单栏中的菜单项与子菜单中的菜单项都是在菜单编辑器中定义的,但是它们是有区别的 。
(1)窗体顶部菜单栏中的菜单项不能定义快捷键,而子菜单中的菜单项可以有快捷键 。
(2)当有热键字母(菜单标题中"&"后的字母)时,按Alt+热键字母选择窗体顶部菜单栏中的菜单项,按热键字母选择子菜单中的菜单项(当子菜单打开时) 。子菜单没有打开时,按热键字母无法选择其中的菜单项 。
(3)尽管所有的菜单项都能响应Click事件,但是窗体顶部菜单栏中的菜单项不需要编写事件过程 。
2.在程序中对通用对话框的属性设置不起作用
在程序中对通用对话框的属性设置不起作用,多数情况是因为在弹出对话框后才进行属性设置 。例如,下面的程序代码就存在这样的问题,改正方法是将弹出对话框语句放到最后,即把CommonDialogl.Action=l放在所有属性设置语句的后面 。
CommonDialog1.Action=1
ConmaonDialog1.FileName="*.Bmp"
CommonDialogl.InitDir="C:\Windows"
CommonDialog1.Filter="Pictures(*.Bmp)|*.Bmp|All Files(*.*)|*.*"
CommonDialog1.FilterIndex=1
3.在工程中添加现有窗体时发生加载错误
在使用"工程"菜单中的"添加窗体"命令添加一个现存的窗体时经常发生加载错误,绝大多数是因为窗体名称冲突的缘故 。例如,假定当前打开了一个含有名称为Forml的工程,如果想把属于另一个工程的Forml窗体装入则肯定会出错 。
[注意]
窗体名与窗体文件名的区别 。在一个工程中,可以有两个窗体文件名相同的窗体(分布在不同的文件夹中),但是绝对不能同时出现两个窗体名相同的窗体 。
4.实时菜单的创建
实时菜单是由应用程序根据需要动态创建的 。在VB中,常见的实时菜单是"文件"菜单,该菜单显示了最近所使用的工程 。
创建实时菜单必须结合控件数组,用Load语句创建菜单项,用UnLoad清除菜单项 。
创建实时菜单的步骤:
(1)在菜单编辑器中建立样本菜单项
样本菜单项的属性设置见表2.8.4所示 。设置Index为0,表明样本菜单项是控件数组的一个元素,其下标为0 。样本菜单项的Name属性是必须的,它将作为控件数组的名称 。在下面假定数组名为NameArray 。Visible可以设为True,设为False表示初始时该菜单项不可见 。
推荐阅读
- 西门子编程软件怎么下载安装 s7 200编程软件
- 电子入门基础知识讲解 电子元件基础知识
- 福州邓拓故居讲解 邓拓故居
- 装修房子风水讲究讲解 房屋装修风水学
- 慢走丝编程培训 慢走丝机床
- 英语反义疑问句的用法讲解 反意疑问句
- 从下往上编织儿童套头毛衣 儿童毛衣编织实例
- 宾语从句全方位掌握 英语宾语从句讲解
- ap100编程教程视频!ap100破解版怎么注册
- 六十四卦详解,喜欢易经的朋友, 易经讲解