第三章 用户界面设计
3.1 窗体对象
窗体是应用程序的设计场所,可以包括多个控件。
窗体就像一个可调整大小的绘图板,可绘制多种对象,
形成美观的用户界面。
3.1.1窗体的结构
3.1.2窗体的属性
通过修改窗体的属性可以改变窗体内在或外在的
结构特征,控制窗体的外观。
[例 3-1]设计一程序,程序进入运行状态后,自动将窗
体的大小设置为屏幕大小的一半并使窗体居中显示,
并且在窗体上装载一幅图片。点击窗体时窗体上的图
片消失,窗体的背景色会随机发生变化。
3.1.3设置启动窗体
3.1.4 窗体的事件
1.鼠标事件
[例 3-3]编写程序在窗体上画圆,要求按下 shift键时以
鼠标左键按下时的坐标点为圆心,以鼠标释放时的
坐标与圆心点之间的距离为半径画圆。
2,键盘事件
3,系统事件
( 1) Load 事件
( 2) Unload事件
( 3) Activate和 Deactivate事件
( 4) Initialize事件
3.1.5窗体常用的方法
1,Cls方法
2,Move方法
3,Show方法和 Hide方法
3.2 标签与文本框
3.2.1 标签( Label)
标签控件的一般功能是显示文本信息。程
序运行时,它显示的文字用户不能直接修改。
[例 3-4]设计一程序,窗体上有两个标签框和一
个命令按钮。程序运行时,点击命令按钮,标
签框尺寸自动发生变化,以适应其需要显示的
内容。
3.2.2 文本框 (TextBox)
文本框( TextBox)是一种通用控件,可
以由用户输入或显示文本信息。
[例 3-5]编写一程序,由用户从键盘上输入两个
数,然后求这两个数的和,并将结果显示出来。
[例 3-6]设置密码。编写程序实现用户名和密码
检验功能。如果用户输入的名字和密码正确,
则进入欢迎界面,否则给出错误提示,并要求
重新输入。
3.3 计时器
计时器( Timer)控件可以每隔一定的时间就产生
一次 Timer事件,可以根据计时器的这一特点控制某
些操作,或用于计时。
[例 3-7]利用计时器控件在窗体上设计一数字时钟。
[例 3-8]一个简单计时器。按“开始”按钮,开始计时,
按钮变为“继续”。按“暂停”按钮,停止计时,
显示记录的时间数。在任何时候按“重置”按钮,
时间读数都将重置为 0。
[例 3-9]为应用程序设计一界面,界面上的“欢迎参加
水平考试”标题从右向左反复移动。
3.4 命令按钮、单选纽、复选框和框架
3.4.1 命令按钮
1,使用命令按钮的 Enabled属性。
[例 3-10]设计一个倒计时程序,窗体上有一标
签用于显示剩余时间,两个命令按钮用于控制
倒计时。当单击命令按钮“开始计时”后,计
时器开始计时,同时此命令按钮变成浅灰色,
表示“失效”。若按“暂停计时”命令按钮,
则计时器停止计时,此时“暂停计时”按钮失
去作用,而“开始计时”按钮恢复原状,可以
使用。
2.使用命令按钮的 Default属性和 Cancel属性。
[例 3-11] 设计一个程序,窗体中有两个命令按
钮和一个标签框。程序运行后若单击“确定
(OK)”,或按回车键,则标签框中显示当天日期,
单击“撤消 (Esc)”命令按钮就结束程序运行。
3.4.2 单选按钮 (OptionButton)
[例 3-12]设计一程序,用户界面由 4个单选纽、
1个标签和一个命令按钮组成。程序运行后,
单击某个单选钮,就可以将它对应的内容(星
期、日期、月份或年份)显示在标签框中。
3.4.3 复选框 (CheckBox)
[例 3-13]设计一程序,通过复选框来控制用户
界面上的文本框中文字的字体、字型、颜色和
大小。
3.4.4 框架( Frame)
[例 3-14]重新设计例 3-13的用户界面,用框架
控件将 9个单选按钮分为 3组,一组用来改变文
本框中文字的字体;一组用来改变字的大小;
一组用来改变字的颜色。
3.5列表框、组合框和滚动条
3.5.1列表框
VB提供的列表框控件,可以列出若干选项供用户
从中任意选择,并对其作某种处理。
[例 3-15]编写一应用程序来判断任意选定的一个数是
否是素数,程序运行时,在窗体上的列表框中列出了
1000个整数,用户点击任意一个数,程序就判断该数
是否是素数,并把判断结果显示在标签框中。
3.5.2 组合框
组合框实际上是将列表框和文本框的功能综合而
成的,既可以像列表框一样让用户选择其中的选项,
又能像文本框一样,由用户输入自己指定的内容。
[例 3-16],同构数”是指这样的整数:它恰好出现在
其平方数的右端,例如 5和 6就是同构数。现要求编写
一程序,由用户选择或输入一个两位或三位整数,程
序能判别它是否是同构数。
3.5.3 滚动条
滚动条是一种常用来取代用户输入的控件,
特别适用于不需要精确输入数据的场合。
1,Min,Max属性
2,Value属性
3,LargeChange属性
4,SmallChange属性
5,Change和 Scroll事件
[例 3-17]设计一应用程序,通过滚动条来改变
用户界面上文本框中文字的大小和颜色。
3.6 图片框与图像框
3.6.1 图片框
图片框( PictureBox)控件可以用来显示图片、作
为其它控件的容器、显示用图形方法输出的图形以及用
Print方法输出的文本。
[例 3-18]在窗体上添加一图片框 Picture1和两个命令按钮,
运行时,单击“显示”按钮,程序把一指定的图片装入
图片框,并在图片框中输出一行文字。
3.6.2 图像框
图像框 (Image)也可以用来装入图形文件,具体的
使用方法与图片框类似。
注意图像框与图片框有一些不同之处。
3.7 图形控件与方法
VB提供了两种绘图方式:一是使用绘图控件如
Line控件和 Shape控件;二是使用绘图方法,如 Line方
法,Circle方法和 Pset方法等。
3.7.1 绘图控件
VB的图形控件主要有两个,它们是画线控件 Line
和形状控件 Shape。
[例 3-19] 利用画线控件和形状控件设计一指针式秒表如
图 3-21所示。程序启动后,点击窗体上的“开始”按钮,
表的指针开始转动,每秒动一下,一分钟转一圈。指针
转动时,命令按钮的标题变为“暂停”,如果此时再点
击命令按钮,指针停止转动。命令按钮的标题又变为
“继续”,再点击,指针又开始转动。
3.7.2 图形的坐标系统
每一个图形操作 (包括调整大小、移动和
绘图 ),都要使用绘图区或容器的坐标系统。
坐标系统是一个二维网格,可定义屏幕上、
窗体中或其他容器中 (如图片框或 Printer对象 )
的位置。
任何容器的缺省坐标系统,都是由容器
的左上角 (0,0)坐标开始。
1.坐标单位
坐标单位即坐标的刻度,缺省的坐标系
统采用 twip为单位。下面的语句代码使窗体
的坐标单位改为毫米:
Scalemode = VbMillimeters
2.坐标方法
使用 Scale方法也可以设置用户的坐标系
统,其语法格式为
[<对象 >,] Scale (x1,y1) - (x2,y2)
3.7.3 常用图形方法
1.Line方法
Line方法用于画直线和矩形,语法格式
如下:
[对象,] Line [Step] (x1,y1) [Step] (x2,
y2),[color],[B][F]
2,Circle方法
Circle方法用于画圆、椭圆、圆弧和扇
形,其语法格式如下:
[<对象 >.] Circle [Step] (x,y),radius,
[color],[start],[end] [,aspect]
3,Pset方法
Pset方法用于在窗体或图片框的指定位
置( x,y)上,按规定的颜色画点,其语法格
式如下:
[对象,] Pset [Step] (x,y),[color]
[例 3-20] 利用 Pset方法或 Line方法均可以画出
任意曲线。下面用 Pset方法在图片框中绘制
阿基米德螺旋线,用 Line方法画一正弦曲线。
3.8 公用对话框
“公共对话框” (Common Dialog)控件
为用户提供了一组标准的系统对话框,可以
使用它进行打开或保存文件、设置打印选项、
选择各种颜色以及选择字体等的操作。另外
还可以通过调用 Windows帮助引擎来显示应
用程序的帮助。
3.8.1 添加“公用对话框”控件
3.8.2使用“公共对话框”
公共对话框可以提供 6种形式的对话框。在
显示出公用对话框前,应通过设置 Action属性
或调用 Show方法来选择。
1.使用保存文件对话框和打开文件对话框。
[例 3-21]编写程序,使用保存文件对话框建立一
个数据文件。然后再使用打开文件对话框打开
该数据文件,并利用该文件的数据作图。
2,使用颜色对话框和字体对话框
[例 3-22]利用颜色对话框和字体对话框来改变界
面上文本框中文字的颜色和字体。
3.9 控件数组
3.9.1控件数组的概念
如果在应用程序中用到一些类型相同且功
能类似的控件,就可以这些相同的控件定义为
一个数组来使用,这种数组就是为控件数组。
3.9.2 创建和使用控件数组
控件数组是通过设置对象的 Index 属性来
创建的。一般情况下,每个控件的 Index 属性
值为空,只要将控件的 Index 属性值设置为非
空 (比如 0),则该控件就被定义成了一个控件数
组 。
[例 3- 23] 建立一个包含 4个命令按钮的控件数
组,单击每个命令按钮时,能分别显示直线、
矩形、圆形或结束操作。
3.10 多文档窗体
3.10.1界面样式
Windows应用程序的用户界面样式主要有
两种:一种是单文档界面 (Single Document
Interface,SDI),另一种是多文档界面 (Multiple
Document Interface,MDI)。
MDI是指一个窗体中能够建立多个子窗体,
即允许用户同时访问多个文档,每个文档显示
在不同的窗口中。
3.10.2 MDI窗体的创建
1,建立有一个子窗体的 MDI窗体。(有六个操
作步骤 )
2,建立有多个子窗体的 MDI窗体。(有四个操
作步骤 )
3,子窗体的排列
完成子窗体的排列操作,要使用
MDIForml的 Arrange方法,其语法格式为:
MDIForml 名称,Arrange 排列方式