窗体的概念
在VB6之中,窗体是应用程序的重要组成部分,一个窗体对应一个窗口。在程序设计阶段,窗体是程序员的“工作台”,程序员在窗体上建立应用程序界面,在运行程序时,窗体是用户与计算机的交互界面。
窗体是VB中一类重要的对象,作为对象,窗体同样具有自己的三要素:属性、事件和方法。此外,窗体还作为其它控件的容器,用于放置其它控件。
在保存工程时,窗体会与工程文件保存在同一级目录下,窗体的扩展名为.frm格式,而工程的扩展名为.vbp格式。
窗体的常用属性
Name(名称)属性
Name属性用于设置窗体的名称,在窗体被创建时,默认名称为Form1、Form2等。Name属性只能在属性窗口修改,所有控件的Name属性都在属性窗口的第一行。在使用对象属性、事件和方法时,务必确保使用了正确的Name名称。
例如,以下是Form1窗体在修改Name名称前和修改Name名称为frm1后,调用隐藏该窗体的方法语句对比:
Form1.hide ' 修改Name名称前
frm1.hide '改Name名称为frm1后
Caption属性
Caption属性用于设置窗体的标题,默认情况下,窗体Caption属性与Name属性一致。可以根据需要修改为其它标题,修改方法为:
窗体名称.Caption="自定义标题"
- 1
Caption属性可以修改,也可以读取。读取Caption属性的方法为:
变量名称=对象名称.Caption '将对象名称赋值给变量
- 1
获取其它可读属性值的方法与此语法一致。
Height和Width属性
Height和Width属性用于设置窗体的高度和宽度。默认单位是twip,1twip=1/567cm。通常使用twip单位设置即可。例如:
Form1.Height=2000 '设置Form1窗体的高度为2000twip
Form1.Width=3000 '设置Form1窗体的宽度为3000twip
Left和Top属性
Left和Top属性用于设置窗体在屏幕中的位置,Left是指窗体左上角距离屏幕左边的距离,Top是指窗体左上角距离屏幕上边的距离。如果是其它控件,如Commmand1按钮,则其Left和Top表示控件在窗体中的位置。具体关系如下图所示。
Enabled属性
Enabled属性用于设置窗体(包含窗体中的控件)是否可被用户操作。默认值为True可用,当设置为False时,则禁止用户对窗体进行操作。语法为:

ForeColor和BackColor属性
ForeColor属性为窗体显示文本的颜色,BackColor用于设置窗体背景颜色。设置颜色的方法有三种方法,以黑色为例:
方法一:Form1.BackColor=vbBlack
方法二:Form1.BackColor=QBColor(0)
方法三:Form1.BackColor=RGB(0,0,0)
- 3
方法一中,vbBlack在VB中是表示颜色的常量,代表黑色,类似的常量还有vbGreen绿色,vbBlue蓝色,vbYellow黄色,vbRed红色等。
方法二中,QBColor(参数),其中参数范围是0-15之间的整数,代表不同的颜色,参数为0时代表黑色
方法三中,RGB(参数1,参数2,参数3),参数1、2、3范围分别是0-255之间的整数。
Icon属性
Icon属性可以为窗体指定一个图片作为窗体左上角的显示图标,同时也作为显示在任务栏中的图标。图片格式必须为.ico格式。
AutoRedraw属性
该属性为False时,窗体在变动后(移动窗体、最大化最小化窗体、加载窗体等),用print方法打印的文本,将不会被自动重画,效果是窗体上用print方法打印的文本在窗体变动时将被清除。当设置为True时,使用print打印的文本会被自动重画,而不会被清除,或者说清除后又被重新打印了。此方法同样适用于在窗体上绘图。
窗体常用事件
Load事件
Load事件是窗体的加载事件,当一个窗体被加载到内存时,会触发Load事件。可以利用Load事件,初始化窗体级的变量,设置控件的属性值。
Unload事件
当一个窗体从内存中卸载时,将触发Unload事件。
Initialize事件
Initialize事件为窗体初始化事件,当应用程序创建窗体实例时会发生该事件。对于窗体而言Initialize事件发生在窗体的Load事件之前。通常可以利用 Initialize事件初始化窗体所用数据。
Activate事件
当一个窗体变为活动窗体时,即当窗体获得焦点时,将会触发该事件。
Deactivate事件
与Activate事件相反,当窗体不再是活动窗体,即失去焦点时,将触发本事件。
Click事件
单击窗体时,触发此事件
DbClick事件
双击窗体时,触发本事件
窗体常用方法
Cls方法
Cls方法用于清除窗体重利用print方法打印的文本,不会清除窗体中控件及控件内的文本。语法为:
Form1.Cls
- 1
Show方法
Show方法可以显示一个窗体,该窗体如果没有被加载到内存中,将会优先触发一次Load事件。使用Show方法后,窗体将会优先于其它窗体显示在最前面。语法为:
Form1.Show
- 1
Hide方法
Hide方法用于隐藏一个窗体,仅将窗体隐藏起来,但是不会从内存中卸载,窗体上的参数仍然保存在内存中,使用Show方法重新显示窗体后,窗体与隐藏之前保持一致。语法为:
Form1.Hide
- 1
Load方法
Load方法用来将窗体加载进内存,将会触发窗体的Load事件,但是窗体未被显示。该方法同样适用于其它控件。语法为:
Load Form1
- 1
Unload方法
用来卸载窗体,将窗体所使用的参数从内存中卸载,包括窗体中的所有控件,卸载后,将不会再占用计算机内存资源。使用Unload方法后,窗体将会达到Hide方法的隐藏效果。该方法同样使用于其它控件。语法为:
Unload Form1
- 1
如何创建多窗体
通常新建一个工程后,系统会为我们自动创建一个窗体,默认名称为Form1,此时当我们项目需要再创建一个窗体时,可以通过菜单栏——工程——添加窗体,在弹出的添加窗体窗口中,选择默认窗口,即可创建一个新的窗体。或者可以,在工程资源管理窗口中,在Form1窗体上右键——添加——添加窗体。
在工程资源管理窗口中,双击窗体,即可进入该窗体的编辑界面。
删除窗体
删除不需要的窗体,通过在工程资源窗口,选中需要删除的窗体,右键——移除。
窗体实战练习题
目标:通过本练习,基本掌握熟悉窗体属性、事件和方法的使用方法。
步骤一:
按照下图,建立两个窗体。并分别将Name名称属性修改为:frmLog和frmMain,并将窗体的Caption标题属性修改为“登录界面”和"主界面"
步骤二:
在第一个窗体,frmLog窗体上,新建一个命令按钮,并将Caption属性修改为"登录"。
步骤三:
双击登录按钮,在其事件过程中写入如下代码:
frmMain.Show '显示frmMain窗体
Me.Enabled = False '禁止frmLog窗体再被操作
Me代表当前窗体的名称,此处即frmLog,可以用frmLog代替。
步骤四:
在第二个窗体(frmMain)编辑窗口中,按照下图所示,建立1个Text文本框和5个命令按钮控件。
步骤五:
进入frmMain窗体代码编辑窗口,按照下图在对应的事件过程下编写如下代码:
其中End语句,是退出应用程序,即该应用程序包含的所有窗体和控件将会全部从内存卸载。
步骤六:
运行程序,测试效果。单击窗体左移,窗体将向左移动,移动距离为text1文本框中的数值,同样的单击窗体右移,窗体将会右移。修改text1文本框数值为200,单击隐藏窗体,窗体被隐藏,在frmLog窗体中单击登录,frmMain窗体重新打开,且Text1文本框内的数值仍是200,单击卸载窗体,窗体被关闭,再次打开后,Text1文本框内数值变为初始值100,这就是hide与Unload方法的区别。单击退出按钮,整个应用程序被关闭。
好了,本节课程到此结束,相信大家通过本节课程,已经对于窗体有了一个全面且深刻的认识了。下节课我们再见吧。