2.3 窗体的属性
窗体的属性决定了窗体的外观以及其工作方式。Visual Basic中每个对象都至少有一个属性,大多数对象有多个属性,窗体也是如此。下面将窗体的常用属性介绍给读者。
2.3.1 设置窗体的背景颜色
设置窗体背景颜色的属性为BackColor属性。该属性为数值型属性,其值是一个十六进制数值。可以通过属性窗口和程序代码改变其值。
【实例2.1】假设,已经新建了一个Visual Basic工程,工程包含一个名为Form1的窗体。使用属性窗口将窗体Form1的背景颜色改为蓝色。操作步骤如下。
(1)单击Form1的空白处,选中Form1。如果操作正确,Form1的四周会有8个小方块出现。
(2)在属性窗口里找到BackColor属性并单击它。在右侧会出现一个向下的箭头。单击这个箭头会出现如图2.4所示的下拉框。该下拉框中有两个选项卡“调色板”和“系统”。
图2.4 BackColor属性(系统选项卡)
(3)单击“调色板”选项卡,在调色板中用鼠标左键单击蓝色,如图2.5所示。这时窗体的背景已经变为蓝色了。
说明
Visual Basic用十六进制数代表颜色。所以,从调色板中选择颜色后,BackColor属性中显示的是一串十六进制数。
图2.5 BackColor属性(调色板选项卡)
2.3.2 改变窗体边框的样式
设置窗体边框样式的属性为BorderStyle属性。该属性为枚举型属性,其值只能从6个固定值中选择,每个值的作用见表2.1。该属性只能通过属性窗口改变其值。
表2.1 BorderStyle属性
2.3.3 设置窗体的标题
设置窗体标题的属性为Caption属性。该属性为字符型属性。可以通过属性窗口和程序代码改变其值。
【实例2.2】将窗体Form1的标题改为“Hello”(默认情况下,窗体Form1的标题为“Form1”)。有两种方法可以完成本实例。第一种方法:在设计状态下通过属性窗口设置;第二种方法:通过编写程序代码,在程序运行状态下设置。第一种方法读者可以参考实例2.1来完成。在此用第二种方法完成本题的要求。
【实现步骤】方法如下。
(1)双击Form1窗体,打开代码编辑器。Visual Basic自动生成了Form_Load事件的过程头和过程尾两行代码。(2)在两行代码的中间写入如下代码:
01 Form1.Caption = "Hello"
(3)单击工具栏中的运行按钮,运行程序。这时会看到窗体的标题变为了“Hello”。
该程序的原理是当启动程序的一刹那,窗体就会被加载,从而自动触发了Form_Load事件,随之写在Form_Load事件中的程序代码会被执行。因此运行后Form1窗体的标题为“Hello”。
2.3.4 设置窗体的高度和宽度
设置窗体高度和宽度的属性分别为Height和Width属性。这两个属性为数值型属性,其计量单位为twip(1英寸=1440twip)。可以通过属性窗口和程序代码设置其值。将Form1的高度和宽度分别设置为5000和10000,如果通过代码应该写为:
01 Form1.Height = 5000 02 Form1.Width = 10000
在Visual Basic中,除窗体以外大多数控件也有Height和Width属性,其作用也是用来设置高度和宽度。
2.3.5 改变窗体的图标
设置窗体图标的属性为Icon属性。一般情况下此属性的设置,都会在设计阶段通过属性窗口设置。其值为.ICO或.CUR格式的图标文件。通过属性窗口的设置方法为:用鼠标单击Icon属性,其右端会出现一个带有三个小点的按钮。单击该按钮后,会出现一个“加载图标”对话框,通过对话框选择合适的图标文件即可改变窗体图标。
如果通过程序来设置,则需使用LoadPicture函数。LoadPicture函数的具体用法在以后的章节里详细讲解。
2.3.6 改变窗体的名称
设置窗体名称的属性为Name属性。该属性只能在设计阶段通过属性窗口设置。上面实例中出现的Form1.Caption、Form1.Height的Form1就是窗体的名称。该属性的作用是在程序里用来唯一确定一个对象。
给窗体或者控件起名字要按照一定的规则,例如给窗体起名字时开头应该是frm,后面跟着的是窗体的具体名称。例如,一个登录窗体的名称为:frmLogin,这里frm说明了该对象是一个窗体,后面的Login说明了该窗体是一个登录窗体。当一个工程里有几十个窗体时,这样起名会给编程带来很多的好处。当然,也可以不遵循这样的规则。但是,迟早会出现很多的问题。例如,下面两种情况。
❑在程序里看到form23时不知道该窗体的内容是什么,从而必须打开form23窗体查看。
❑想改变某一个窗体的界面或者里面的代码时就会傻眼了,必须一个一个的打开窗体查看是不是要找的那个窗体。
因此,强烈建议读者从开始就养成一种按照规则给对象起名的好习惯。在此,还有一个提醒,在Visual Basic初学者中,经常会有一部分人将Caption属性和Name属性混淆。Caption设置窗体的标题,就像设置人的帽子一样,而Name设置窗体的名称,就像设置人的名字一样。在通常情况下,一个人的帽子可以经常换,而名字生来只能有一个。
2.3.7 设置窗体的背景图片
设置窗体背景图片的属性为Picture属性。可以通过属性窗口和程序代码改变其值。通过属性窗口设置的方法与设置窗体Icon属性的方法一样,在此不再重复。代码改变其值时也需要用到LoadPicture函数。通用格式如下:
窗体.Picture = LoadPicture("文件名")
其中,窗体为窗体文件的名称,即用Name属性设定的名称。文件名是包含路径和扩展名的完整图片文件名。例如,要给Name属性为frmTest的窗体设置背景图片,并且该背景图片带有路径和扩展名的名称为:c:\aa.jpg。代码应当写为:
frmTest. Picture = LoadPicture("c:\aa.jpg ")
2.3.8 窗体的显示位置
设置窗体显示位置的属性有两个,分别为Top和Left。Top用来设置窗体的顶边位置,其值代表窗体顶边和屏幕顶边之间的距离。Left用来设置窗体左边的位置,其值代表窗体左边和屏幕左边之间的距离。这两个属性为数值型属性,计量单位为twip。
【实例2.3】如图2.6所示,窗体中两个白色框为文本框控件,其默认名称分别为Text1和Text2,下面有两个按钮控件,名称分别为Command1和Command2,上面分别显示“获得窗体的位置”和“设置窗体的位置”。
【运行效果】程序运行后的效果为:(1)单击“获得窗体的位置”按钮时在第一个文本框中显示窗体的Top属性的值,在第二个文本框中显示窗体的Left属性的值。(2)单击“设置窗体的位置”按钮时,窗体将以第一个文本框和第二个文本框内的值移动自己的位置。
【实现步骤】编程操作步骤如下。
(1)新建一个标准EXE工程,里面自动包含窗体Form1。
(2)在工具箱中找到TextBox(文本框)控件并单击。
图2.6 实例2.3界面(设计状态)
(3)将鼠标箭头移动到窗体中,参照图2.6的布局,按下鼠标左键,向右下角拖拽,感觉大小合适时,松开鼠标左键,画出窗体上侧的文本框。系统给该文本框的默认名称为Text1,并在文本框里自动显示“Text1”字样,如果想更改文本框的名称可以设置其Name属性,更改里面显示的文字使用Text属性。本例中为了简单起见,所有对象均使用默认名称。
(4)使用步骤3的方法继续在窗体上画第二个文本框。默认名称为Text2,文本框里自动显示“Text2”字样。
(5)在工具箱中找到CommandButton(命令按钮)控件并单击。
(6)将鼠标移动到窗体合适的位置,按下鼠标左键,向右下角拖拽,感觉大小合适时,松开鼠标左键。画出的按钮控件默认名称为Command1,上面显示的文字也为“Command1”。
(7)使用步骤(6)的方法继续在窗体上画第二个按钮控件。默认名称为Command2,其上会显示“Command2”字样。
(8)为了启动程序时文本框内不显示文字,单击Text1文本框,将其选中。在属性窗口内找到Text属性,将其值“Text1”删除。
(9)使用上一步的方法将Text2文本框内显示的文字“Text2”删除。
(10)用鼠标左键单击Command1按钮,将其选中。在属性窗口内找到Caption属性,将其值改为“获得窗体的位置”。
(11)使用上面的方法将Command2按钮的Caption属性改为“设置窗体的位置”。
(12)双击Command1按钮。在打开的代码编辑器中Visual Basic会自动生成Command1_Click事件的开头和结尾的两行代码,在其中间编写代码如下。
01 Text1.Text = Form1.Top 02 Text2.Text = Form1.Left
说明
第一条语句的作用是将Form1.Top的值,即窗体顶边到屏幕顶边的距离,显示到文本框Text1里面。第二条语句是将Form1.Left的值,即窗体左边到屏幕左边的距离,显示到文本框Text2里面。
(13)双击Command2按钮。在打开的代码编辑器中Visual Basic会自动生成Command2_Click()事件的开头和结尾的两行代码,在其中间写入代码如下。
03 Form1.Top = Text1.Text 04 Form1.Left = Text2.Text
说明
第一条语句的作用是用Text1.Text的值,即Text1文本框中的内容,设置Form1的Top属性。第二条语句是用Text2.Text的值,即Text2文本框中的内容,设置Form1的Left属性。
(14)单击工具栏上的启动按钮或者按键盘上的F5键启动程序。
(15)单击“获得窗体的位置”按钮,这时两个文本框内分别显示窗体的Top和Left属性当前值,如图2.7所示。通过标题栏移动窗体后再单击“获得窗体的位置”按钮,观察其变化。
(16)在两个文本框内输入想要设置的Top和Left属性的值。例如,在Text1中输入0,在Text2中输入1000。单击“设置窗体的位置”按钮,观察窗体位置的变化。
【代码说明】通过上面的实例应该得知,在程序代码里,不仅可以用属性设置窗体的状态也可以用属性代表当前窗体的各种状态的值。例如,本例Command1_Click()事件中的Form1.Top代表了当前窗体顶边和屏幕顶边之间的距离。又例如,Form1.Caption可以代表窗体当前的标题等。同时,也应该知道不仅是窗体的属性如此,其他控件如文本框的属性也是如此。
图2.7 程序运行效果
2.3.9 窗体的可见性
设置窗体可见性的属性为Visible属性。可以通过属性窗口和程序代码改变其值。该属性为逻辑型属性,因此只有两种值分别为True和False。如果在设计阶段将窗体的Visible属性设置为False,运行后该窗体将不可见,其默认值为True。通过代码改变的格式为:
窗体.Visible=True (或false)
2.3.10 窗体的显示状态
设置窗体显示状态的属性为WindowState属性。窗口的显示状态主要有正常、最小化和最大化等三种状态。如果想启动窗体时就让窗体以最大化的状态显示,应将该属性设置为2;如果想要让窗体以设计时的大小显示,就将设置为0;如果以最小化的状态显示则将该属性设置为1即可。通过代码改变的格式为:
窗体. WindowState=0 (或1,或2)
在Visual Basic中,调用属性时窗体名称可以省略,省略后默认窗体对象为属性调用所在模块相关联的窗体。