窗体的结构与Windows下的窗口十分类似,在程序运行前,即设计阶段,称为窗体;程序运行后也可以称为窗口。
一、窗体的属性
1.AutoRedraw(自动重画,也可以理解为刷新)
如果把AutoRedraw属性设置为True,则当一个窗体被其他窗体覆盖又回到该窗体时,将自动刷新或重画该窗体上的所有图形;如果把该属性设置为False,则必须通过事件过程来设置这一操作,该属性的默认值为False。
2.BackColor(背景颜色)
该属性用来设置窗体的背景色,颜色是一个十六进制常量,每种颜色都用一个常量来表示。该属性适用于窗体及大多数控件,包括复选框、组合框、命令按钮、目录列表框、文件列表框、驱动器列表框、框架、网格、标签、列表框、单选按钮、图片框、形状及文本框。
3.BorderStyle(边框类型)
该属性用来确定窗体边框的类型。
表2-1 窗体对象Border Style属性的取值及意义
注意:在运行期间BorderStyle属性是“只读”属性。也就是说它只能在设计阶段设置,不能在运行期间改变。
除窗体外,BorderStyle属性还可以用于多种控件,其设置值也不一样。
4.Caption(标题)
该属性用来定义窗体标题栏上的标题内容。启动VB或者执行“工程”菜单中的“添加窗体”命令后,窗体使用的是默认标题(如From1,From2……),用Caption属性可以把窗体标题改为所需要的名字,该属性既可以通过属性窗口设置,也可在事件过程中通过代码设置,其格式如下:
对象.Caption=“字符串”
这里的“对象”可以是窗体、复选框、命令按钮、数据控件、框架、标签、菜单及单选按钮。“字符串”是要设置的窗体标题。例如:Form1.Caption=“Visual Basic Test”,将窗体标题设置为“Visual Basic Test”,如果省略=“字符串”,则返回窗体的当前标题。
5.ControlBox(控制框)
该属性用来设置窗口控制框(也称系统菜单,位于窗口左上角)的状态,当该属性被设置为True(默认值)时,窗口左上角会显示一个控制框。此外,ControlBox属性还与Bor⁃derStyle属性有关系,如果把BorderStyle属性设置为“0——None”,则ControlBox属性将不起作(即使被设置为True)。ControlBox属性只适用于窗体。
6.Enabled(设置控件可用或不可用)
该属性用于激活或禁止,每个对象都有一个Enabled属性,可以被设置为True或False,分别用来激活或者禁止该对象。对于窗体,该对象一般设置为True,但为了避免鼠标或键盘事件发送到某个窗体也可以设置为False,该属性可在属性窗口中设置,也可以通过程序代码设置。其格式如下:
对象.Enabled=Boolean值
这里的“对象”可以是窗体、所有控件及菜单,其设置值可以是True或False。当该属性被设置为False后,运行时相应的对象呈灰色显示,表明处于不活动状态。
7.Font(字体设置)
字形属性用来设置输出字符的各种特性,包括字体、大小等,这些属性适用于窗体和大部分控件,包括复选框、组合框、命令按钮、目录列表框、文件列表框、驱动器列表框、框架、网格、标签、列表框、单选按钮、图片框、文本框及打印机,该属性可在属性窗口中设置,也可以通过程序代码设置。
表2-2 字形属性
8.ForeColor(字体颜色设置)
用来定义文本或图形的前景颜色,其设置方法及适用范围与Back Color属性相同,由Print方法输出显示的文本均按用ForeColor属性设置的颜色输出。
9.Height,Width(高、宽)
这两个属性用来指定窗体的高度和宽度,其单位为twip,其格式如下:
对象.Height=[数值]
对象.Width=[数值]
这里的“对象”可以是窗体和各种控件,包括复选框、组合框、命令按钮、目录列表框、文件列表框、驱动器列表框、框架、网格、水平滚动条、垂直滚动条、图像框、标签、列表框、OLE、单选按钮、图片框、形状、文本框、屏幕及打印机。“数值”为单精度型,其计算单位为twip,如果省略“=数值”,则返回对象的高度和宽度。
10.MaxButton、MinButton(窗口“最大化”“最小化”按钮)
这两个属性用来显示窗体右上角的“最大”“最小化”按钮。如果希望显示“最大化”、“最小化”按钮则应该将这两个属性设置为True,这两个属性只在运行期间起作用。因此即使把MaxButton属性和MinButton属性设置为False,“最大化”、“最小化”按钮也不会消失。如果BorderStyle属性被设置为“0——None”,则这两个属性将被忽略。
11.Name(名称)
该属性用来定义对象名称。用Name属性定义的名称是在程序代码中使用的对象名,与对象的标题(Caption)不是一回事。和BorderStyle属性一样,Name是只读属性,在运行时,对象的名称不能改变。该属性适用于窗体、菜单及菜单命令。
注意:在属性窗口中,Name属性通常作为第一个属性条并写作“名称”。
12.Picture(图形)
用来在对象中显示一个图形。在设计阶段,从属性窗口中选择该属性并单击右端的“...”,将弹出“加载图片”对话框,利用该对话框选择一个图形文件,该图形即可显示在窗体上,用该属性可以显示多种格式的文件,包括.ioc、.bmp、.wmf、.cur、.emf、.jpg、.gif、.dib等。该属性适用于窗体、图像框、OLE和图片框。
13.Top、Left(控件离上边框、左边框的距离)
这两个属性用来设置对象的顶边和左边的坐标值,用以控制对象的位置,坐标值的默认单位为twip(567缇为1厘米),当用程序代码设置时,其格式如下:
对象.Top[=Y]
对象.Left[=X]
这里的“对象”可以是窗体和绝大多数控件,当对象为窗体时,Left指的是窗体的左边界与屏幕左边界的相对距离,Top指的是窗体的顶边界与屏幕顶边界的相对距离。而当“对象”为控件时,Top、Left分别指控件的顶边和左边与窗体的顶边和左边的相对距离。
14.Visible(可见性)
用来设置对象的可见性。如果该属性设置为False,则将隐藏对象;如果设置为True,则对象可见。当用程序代码设置时,其格式如下:
对象.Visible[=Boolean值]
这里的“对象”可以是窗体和任何控件(计时器除外),其设置值为True和False。在默认情况下,Visible属性值为True。
注意:只有运行程序时该属性才起作用,也就是说在设计阶段即使把窗体或控件的Visible属性设置为False,窗体或控件也仍然可见,程序运行后消失。当对象为窗体时,如果Visible的属性为True,则其作用与Show方法相同。类似地,如果Visible的属性为False,则其作用与Hide方法相同。
15.WindowState(初始窗口正常或最小化或最大化设置)
用来设置窗体的操作状态,可以用属性窗口设置,也可以用程序代码设置,其格式如下:
对象.WindowState[=设置值]
这里的“对象”只能是窗体,“设置值”是一个整数,取值为0、1、2,代表的操作状态分别为:
0——正常状态,有窗口边界;1——最小化状态,显示一个示意图;2——最大化状态,无边界,充满整个屏幕。
“正常状态”也称“标准状态”,即窗体不缩小为一个图标,一般也不充满整个屏幕。其大小以设计阶段所设计的窗体为基准,但是程序运行后,窗体的实际大小取决于Width和Height的属性值,同时可用鼠标改变其大小。
16.Icon(图标)
返回或设置窗体左上角显示的图标或最小化时显示的图标,通常为.ico格式的图标文件,仅当ControlBox属性值取True该属性才生效。
二、窗体事件
1.Click(单击事件)
该事件是单击鼠标左键发生的事件,程序运行后,当单击窗口内的某个位置时,VB将调用窗体事件过程From_Click(),在事件过程中只能使用Form,而在过程内对窗体进行引用时才会用到窗体名字(如Form1等)。
注意:单击的位置必须没有其他对象(控件),如果单击窗体内的控件,则只能调用相应控件的Click事件过程,不能调用窗体From_Click()过程。
2.DblClick(双击事件)
程序运行后,双击窗体内的某个位置,Visual Basic将调用窗体事件过程Form_DblClick(),双击实际上发出两个事件,第一次按鼠标产生Click事件,第二次产生DblClick事件。
3.Load(装入事件指程序运行时自动执行的事件)
该事件可以用来在启动程序时对属性和变量进行初始化。因为在装入窗体后,如果运行程序,将自动触发该事件。Load是把窗体装入工作区的事件,如果这个过程存在,接着就执行它。Form_Load()过程执行完之后,如果窗体模块中还存在其他事件过程,Visu⁃al Basic将暂停程序的执行,并等待触发下一个事件过程。如果Form_Load()事件过程内不存在任何指令,Visual Basic将显示该窗体。
4.Unload(卸载事件指关闭窗口时触发的事件)
当从内存中清除一个窗体(关闭窗体或执行Unload语句)时触发该事件。如果重新装入该窗体,则窗体中所有的控件都要重新初始化。(www.daowen.com)
5.Activate/Deactivate(活动/非活动事件)
当窗体变为活动窗口时,触发Activate事件,而在另一个窗体变为活动窗口前,触发Deactivate事件,通过操作可以把窗体变为活动窗体,例如单击窗体或在程序中执行Show方法等。
6.Paint(绘画事件)
当窗体移动或放大时,或者窗口移动时覆盖了一个窗体所触发的事件。
注意:Load事件发生时窗体是不活动的,而Activate事件发生时窗体是活动的,Print方法不能在不活动窗体上使用,因此Print不能用于Load事件中。
7.KeyPress(按键事件)
当按下键盘上的某个键时,将触发KeyPress事件。其事件过程的格式为:
例如:Private Sub Form_KeyPress(KeyAscii As Integer)
Print"你录入的键是:";Chr(KeyAscii)
End Sub
三、窗体的方法
在代码窗口中输入“form1.”后,会显示该窗体对象的所有属性和方法。
图2-2 对象的属性和方法
1.Show和Hide方法
分别用于显示和隐藏窗体。调用格式如下:
[窗体名.]Show[Style]
[窗体名.]Hide
其中,窗体名缺省,表示显示或隐藏当前窗体。Show方法的Style参数取值有如下两种:
vbModel(模式):不允许用户同时与其他窗体交互。vbModeless(无模式):允许用户同时与其他窗体交互。
2.Print方法
用于将文本输出到窗体的一行上。调用格式如下:
[对象名.]Print[输出项列表][{;|,}]
对象除了窗体外,还可以是图片框(PictureBox)、调试(Debug)或打印机(Printer),若缺省对象名,表示将文本输出到当前窗体上。输出项列表是由0个、1个或多个待输出的数值表达式或字符串表达式构成;当输出项是由多个项构成,则中间必须用逗号或分号分隔;若Print后什么都不跟,则表示输出一个空行。
图2-3 标准格式
【例2.1】 Private Sub Form_Click()
Print 1,-2
Print"We","study"
End Sub
图2-4 紧缩格式
图2-5 运行效果
注意:标准格式即参数以“,”分割,下一个输出项将与上一个输出项间隔14列;紧缩格式即参数以“;”分割,下一个输出项将以紧凑格式,紧跟着上一个输出项输出。
Print方法输出的位置是由窗体的绘图坐标CurrentX和CurrentY属性决定的,默认为对象的左上角(0,0)。
该方法可以结合定位输出函数一起使用:
定位输出函数Tab(n):输出定位在绝对n列号上。Spc(n):在下一个输出项前插入n个空格。
3.Cls方法
用于清除运行时窗体上或图形上的用Print方法生成的文本和图形。语法格式如下:
[对象名].Cls
对象名可以是窗体或图片框。当对象名缺省时,表示清除当前窗体上的内容。
4.Move方法
用于移动对象,并且可以在移动时变化对象的大小。语法格式如下:
[对象名.]Move Left[,Top[,Width[,Height]]]
其中,对象名可以是窗体和除时钟、菜单以外的所有控件。窗体名缺省(即未选对象名)时,默认为当前窗体。Move方法中的Left、Top、Width、Height 4个参数,单位为twip(像素)。
【例2.2】 编程实现:单击和双击窗体时分别改变标签和窗体标题栏的文字,单击单选按钮改变标签文字。
第一步:界面设计。
图2-6 界面设计
第二步:属性设置。
表2-3 各对象属性设置
第三步:编写代码。
图2-7 单击窗体效果
图2-8 双击窗体效果
图2-9 单击“上课”按钮效果
图2-10 单击“复习”按钮效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。