第二章 建立简单的VB应用程序
2.3窗体及基本的内部控件 2.3.1 窗 体 创建VB应用程序的第一步是创建用户界面。用户界面的基础是窗体,各种控件对象必须建立在窗体上。 2.3.1 窗 体 最小化按钮 最大化按钮 控制菜单框 标题栏 创建VB应用程序的第一步是创建用户界面。用户界面的基础是窗体,各种控件对象必须建立在窗体上。 启动VB后,即在屏幕上显示一个窗体。 关闭按钮 窗体
(一)窗体的主要属性 窗体的属性决定了窗体的外观和操作。窗体的大部分属性可用两种方法来设置: 通过属性窗口设置和通过程序代码设置。有少量的属性不能在程序代码中设置。 (1) Appearance属性 该属性决定窗体的外观效果,属性值为0为平面效果,属性值为1为立体效果。 (2) Caption属性 用于设置窗体标题栏显示的内容,它的值为字符串。系统默认的Caption值为Form1。 (3) Icon属性 用于设置当窗体最小化时以该图标显示,如果不设置则以VB默认图标显示。设置方法为,单击Icon属性设置右边的“”,打开“加载图标”对话框,选择图标文件装入。 (4) ControlBox属性 当其值为True时左上角有控制菜单,当为False时为无控制菜单框。 (5) MaxButton 属性和 MinButton 属性 MaxButton属性为True,窗体右上角有最大化按钮;为False时,无最大化按钮MinButton属性为True,窗体右上角有最小化按钮;为False时,无最小化按钮。
设置窗体的初始高度和宽度。其单位为Twip。 1Twip=1/20点=1/1440英寸=1/567cm。 (6)BorderStyle 属性 决定窗体边框式样及窗体是否能调整大小。 (7)BackColor属性和ForeColor 属性 BackColor属性设置窗体的背景颜色,ForColor 属性设置窗体的前景颜色。窗体的前景颜色是执行Print方法时所显示文本的颜色。 (8)Height属性和Width属性 设置窗体的初始高度和宽度。其单位为Twip。 1Twip=1/20点=1/1440英寸=1/567cm。 (9)Left属性和Top属性 用于设置窗体左边框距屏幕左边界的距离和窗体顶边距屏幕顶端的距离。其单位为Twip。 (10)Name(名称)属性 设置窗体的名称,在程序代码中用这个名称引用该窗体。新建工程时,窗体的名称缺省为 Form1;添加第二个窗体,其名称缺省为 Form2,依次类推。为了便于识别,用户通常给 Name 属性设置一个有实际意义的名称。
(12)Moveable属性 属性值为True或False,设置是否可以移动窗体。 (13)Visible属性 (14)Picture属性 设置在窗体中显示的图片。单击Picture属性右边的按钮,弹出“加载图片”对话框,用户可选择一个图片文件作为窗体的背景图片。若在程序中设置该属性的值,需要使用LoadPicture函数。 (15)WindowState属性 设置窗体启动后的大小状态。 在VB中,虽然不同的对象有不同的属性集合,但有一些属性,如Name 、Enabled、Visible、Height、Width、Left、Top等,其它控件也有,且具有相似的作用。在后续的章节中,主要介绍各种控件常用的特殊属性。
窗体最常用的事件有3种:Click(单击)、DbClick(双击)、Load(装入)。 (二) 事件 窗体最常用的事件有3种:Click(单击)、DbClick(双击)、Load(装入)。 1.Click事件 程序运行后,单击窗体触发该事件。 2.DbClick事件 程序运行后,双击窗体触发该事件。 3.Load事件 Load事件是窗体被装入内存工作区时触发的事件。如果这个事件过程存在,就马上执行它。Load事件过程通常用于启动程序时,对属性、变量的初始化以及装载数据等。
窗体上常用的方法有Print和Cls方法。 1.Print方法 Print 方法的语法是: (三)方法 窗体上常用的方法有Print和Cls方法。 1.Print方法 Print 方法的语法是: [对象名].Print[{Spc(n)|Tab(n)}][表达式列表][;|,] 2. Cls方法 Cls方法的语法格式: [对象名] .Cls 其中对象可以是Form或PictureBox,如果省略,通常Visual Basic都把当前的窗口作为Cls操作的对象。
例2-2利用Print方法打印出如图2-15所示的图形,并使用Cls方法将打印出来的图形清除。 在用户界面上放置一个命令按钮,在代码窗口直接设计程序如下: Private Sub Command1_Click() Form1.Cls End Sub Private Sub Form_Click() Print "★★★★★★★★★ ★" Print “ ★★★★★★★★ ★★" Print " ★★★★★★★ ★★★" Print " ★★★★★★ ★★★★" Print " ★★★★★ ★★★★★" Print " ★★★★ ★★★★★★" Print " ★★★ ★★★★★★★" Print " ★★ ★★★★★★★★" Print " ★ ★★★★★★★★★" 程序运行结果如图所示。
例2-3 设计一个窗体, 用于测试鼠标的单击与双击的反应。 直接在代码窗口输入程序代码如下: Private Sub Form_Load() Caption = "加载窗体结果" AutoRedraw = True Picture = LoadPicture(App.Path + "\bg1.jpg") FontSize = 40 FontName = "隶书" ForeColor = vbGreen Print "Load事件" End Sub Private Sub Form_Click() Caption = "鼠标单击" Print "鼠标单击结果" Private Sub Form_DblClick() Caption = "鼠标双击" Picture = LoadPicture("") Print "鼠标双击"
2.3.2 标 签 标签(Label)主要用于显示不需要用户修改的文本。所以,标签可以用来标示窗体及窗体上的对象,如为文本框、列表框等添加描述性的文字,或者作为窗体的说明文字。 (一) 属性 1.Caption属性 设置标签要显示的内容。它是标签的主要属性。 2.BorderStyle属性 默认值为0,标签无边框;设置为1时,标签有立体边框。 3.Autosize属性 该属性用于设置标签是否自动改变尺寸以适应其内容。 4.Alignment属性 确定标签中内容的对齐方式。 5.BackStyle属性 该属性用于设置背景是否透明。
例2-4 利用标签控件,制作具有阴影效果的文字,如图所示 (二)事件 标签的主要事件有:Click、DblClick和Change事件。但是一般标签用于显示输出信息,不需编写事件过程。 例2-4 利用标签控件,制作具有阴影效果的文字,如图所示 该例题的设计主要是对两个标签对象的属性设置,参见下表:。 默认控件 BackStyle ForeColor Left Top Label1 0-Transparent &H00000000 &黑 720 240 Label2 &H00FFFFFF&白 800 280
在VB应用程序中,命令按钮是使用最多的对象之一,常常用它接受用户的操作信息,触发相应的事件过程,以实现指定的功能。 2.3.3 命令按钮 在VB应用程序中,命令按钮是使用最多的对象之一,常常用它接受用户的操作信息,触发相应的事件过程,以实现指定的功能。 (一) 属性 1.Caption属性 设定命令按钮上显示的文本。 2.Default属性 该属性用于设置默认命令按钮。 3.Style属性和Picture属性 命令按钮上除了可以显示文字外,还可以显示图形。若要显示图形,首先应将Style 属性设置为1,然后在Picture属性中设置要显示的图形文件。 4.ToolTipText属性 使用此属性以较少的文字解释按钮对象的功能。 5.Enable属性 控制按钮是否可按 6.Visable属性 控制按钮是否可见
例2-5 分别制作两个按钮用来改变标签的文本颜色和背景色,并制作一个具有图标的按钮用来结束程序。 各控件参数见下表: (二)事件 命令按钮最常用的事件是Click事件。 例2-5 分别制作两个按钮用来改变标签的文本颜色和背景色,并制作一个具有图标的按钮用来结束程序。 各控件参数见下表: 控件名称 Caption 字体大小 Style Picture Form1 “按钮操作示例” 四号 - Label1 “HELLO VB” 小一 Command1 “改变背景” 0- 空 Command2 “改变文字” Command3 1- ARW09RT
事件代码如下: Private Sub Command1_Click() Label1.ForeColor = vbRed End Sub Private Sub Command2_Click() Label1.BackColor = vbYellow Private Sub Command3_Click() End 程序运行结果如图所示:
2.3.4 文本框 文本框(TextBox)在窗体中为用户提供一个既能显示文本又能编辑文本的区域。在文本框内,用户可以用鼠标、键盘按常用的方法对文字进行编辑,例如进行输入、删除、选择、复制及粘贴等各种操作。 (一) 属性 1.Text属性 设置文本框中显示的内容。 2.Locked属性 设置文本框中的内容是否可编辑。 3.Maxlength属性 设置文本框中允许输入的最大字符数。 4.MultiLine属性 决定文本框是否允许接收多行文本。 5.PassWordChar属性 当MultiLine为False时,该属性可设置显示在文本框中的替代符。 6.ScrollBars属性 决定文本框中是否有滚动条。
定义当前选中的字符个数。该属性会随着选择字符数的多少而改变。 该属性含有当前所选择的文本字符串。 (7)SelLength 定义当前选中的字符个数。该属性会随着选择字符数的多少而改变。 (8)SelText 该属性含有当前所选择的文本字符串。 (9)Locked属性 该属性设置文本框是否可以编辑。默认False时,可以编辑文本框中的文本;当设置为True时,可以滚动和选择文本框中的文本,但不能编辑。 (10)FontName,FontSize,FontBold,FontItalic,FontStrikethru,FontUnderline 是与字体输出形式相关的几个重要的常用属性。
例2-6建立一个文本框,有关窗体和文本框属性如下表所示,要求当选中文本框中的文字后,单击窗体在窗体上打印出所选文字,效果如图所示。 控件名 属性名 属性值 Form FontSize 12 Text1 MultiLine True 事件代码如下: Private Sub Form_Click() Print Text1.SelText End Sub 例如程序运行时首先输入文字,然后选中其中的部分文字后,Text1.SelText值为“显示文字”,Text1.SelStart值为选定文字的开始位置,即“显”字在该段文字的位置,Text1.SelLength值为4。
当用户向文本框中输入新信息时,或程序把Text属性设置为新值从而改变文本框的Text的属性时将触发Change事件。 (二)事件和方法 文本框的主要事件是: (1)Change 当用户向文本框中输入新信息时,或程序把Text属性设置为新值从而改变文本框的Text的属性时将触发Change事件。 (2)GotFocus 一个处于可以接受用户输入数据状态的对象,被称为该对象此时具有焦点,当焦点进入文本框时触发GotFocus事件,键盘上输入的每个字符都将在该文本框中显示出来。只有当一个文本框被激活并可见时,才能收到焦点。 (3)LostFocus 当按下Tab键时使光标离开当前文本框或者用鼠标选择窗体中的其它对象,即焦点离开文本框时,触发该事件。 (4)KeyPress 当用户按下并且释放键盘上的能够产生ACSII码的键,就会引发文本框的KeyPress事件,包括数字、大小写的字母、Enter、Backspace、Esc、Tab等键。 (5)setFocus方法 该方法可以把输入光标移到指定的文本框中。在窗体上建立了多个文本框后,可以用该方法把光标置于所需要的文本框。 格式为:对象名. SetFocus
2.3.5图形框(PictureBox)和图像框(Image) 一.图形框 在图形框中加载图片的方法有两种: 方法一:在设计界面设置其Picture属性。 方法二:在代码窗口使用LoadPicture()函数装入图片 格式为: 图形框对象名.Picture=LoadPicture(”图形文件路径”) 卸载图片的方法也有两种: 方法一:在设计界面将其Picture属性清空 方法二:在代码窗口可以使用LoadPicture()函数卸载,格式为: 图形框对象名.Picture=LoadPicture(” ”) PictureBox的Autosize属性为True时,图形框能自动调整大小与显示的图片匹配,但是,如果图片的大小超过图形框所在的窗体,则只能显示部分图片,因为窗体本身无法自动调整大小。Autosize值为False,则图形框不能自动改变大小来适应其中的图片。 PictureBox也可以作为其它控件的容器。这些控件会随着PictureBox的移动而移动。
二.图像框 图像框没有Autosize属性,而是用Stretch属性来自动调整图像框中图形内容的大小。当其值为True时,装入的图片自动适应图像框的大小,当其值为False时,图像框自动适应图片的大小。 图片框和图像框都可以接收Click和DbClick事件。 三. 图形框与图像框的区别 (1)图形框可以作为容器使用,但图像框不行。 (2)图形框可以通过Print方法接收文本,并可以接收由像素组成的图形;图像框不能接收用Print方法输出的信息,也不能用绘图方法在图像框上绘制图形。 (3)图像框比图形框占用的内存少,显示速度快。如果在图形框和图像框都能满足需要的情况下,应该先考虑使用图像框。
例2-8 分别用图形框和图像框加载图片,并比较图像框的Stretch和图形框的Autosize属性。程序运行如图所示 : 分别在窗口中拖放图形框和图像框控件对象。编写如下事件代码: Private Sub Form_Load() Picture1.Height = 2175 Picture1.Width = 3015 Picture1.Picture = LoadPicture(App.Path + "\Car3666.jpg") Image1.Picture = Picture1.Picture End Sub 图像框的Stretch和图形框的Autosize属性均为False 图像框的Stretch和图形框的Autosize属性均为True
Private Sub Form_Load() Image1.Picture = LoadPicture(App.Path + 例2-9 在图像框中放入图片“世界卫生组织.jpg”,利用Move方法,让其自动下、向右移动。如图所示: 事件代码如下: Private Sub Form_Load() Image1.Picture = LoadPicture(App.Path + “\世界卫生组织.jpg") End Sub Private Sub Command1_Click() Image1.Move Image1.Left, Image1.Top - 50 Private Sub Command2_Click() Image1.Move Image1.Left + 50, Image1.Top
2.4 基本控件和窗体 一、常用属性总结 1. Name名称属性 2.4 基本控件和窗体 一、常用属性总结 1. Name名称属性 创建的对象名称,有默认的名。在程序中,控件名是作为对象的标识而引用,不会显示在窗体上。 2. Caption标题属性 该属性决定了控件上显示的内容。 3. Height、width、top和left属性
4. Enabled属性 控件是否可操作。当设置为false时,呈暗淡色,禁止用户进行操作。 5. Visible属性 控件是否可见。当设置为false时,用户看不到,但控件本身存在。 6. Font属性 Fontname:字体;Fontsize:字体大小;Fontbold:是否是粗体; Fontitalic:是否斜体;Fontstrikethru:是否加一删除线。 Fontunderline:是否带下划线。 7. Forecolor前景颜色属性 设置控件的前景颜色(即正文颜色).。其值是一个十六进制常数,用户可以在调色板中直接选择所需颜色。
8. Backcolor背景颜色属性 9. Backstyle背景风格属性 0-transparent:透明显示,即控件背景颜色显示不出来。 10. BorderStyle边框风格属性 0-None:控件周围没有边框 。 1-Fixed Single:控件带有单边框。 11. Alignment属性 控件上正文水平对齐方式 0:正文左对齐 ;1:右对齐;2:居中。 12. AutoSize属性 控件是否根据正文自动调整大小, False 13. WordWarp属性 AutoSize True时,WordWarp才有效。 按正文字体大小在垂直方向上改变显示区域的大小。 14.TabIndex属性 决定了按Tab键时,焦点在各个控件移动的顺序。各个控件默认 TabIndex值就是以控件建立时 的顺序,第一个为0。
2.4程序调试 2.4.1 错误类型 1.编辑错误 在编辑代码时,VB会对键入的代码直接进行语法检查。当发现代码存在打字错误,遗漏关键字或标点符等语法错误,VB在Form窗口中弹出一个子窗口,提示出错信息,出错的那一行变成红色。这时,用户必须单击“确定”按钮,关闭出错提示窗,然后对出错行进行修改。
2 .编译错误 编译错误指按了“启动”按钮,VB开始运行程序前,先编译执行的程序段时,产生的错误。此类错误由于用户未定义变量、遗漏关键字等原因产生。这时,Visual Basic也弹出一个子窗口,提示出错信息,出错的那一行被高亮度显示。
3 .运行错误 运行时错误指VB在编译通过后,运行代码时发生的错误。这类错误 往往是指令代码执行了一非法操作引起的。例如类型不匹配、无效 参数或过程的调用以及试图打开一个不存在的文件等。 如使用函数QBColor设置背景色,参数34超出了范围0-15,会在运行时单击命令按钮出错,告知这时一个无效的参数。这时单击“调试”,会进入“中断模式”下,错误处以高亮度显示,在此模式下可以进行修改,修改完成后,重新运行该程序即可
4 逻辑错误 程序运行后,得不到所期望的结果,这说明程序存在逻辑错误。这类错误往往是程序存在逻辑上的缺陷所引起。例如,运算符使用不正确、语句的次序不对、循环语句的起始、终值不正确等。通常,逻辑错误不会产生错误提示信息,故错误较难排除,需要程序员仔细地阅读分析程序以及调试。
2.5 生成应用程序的可执行文件 例如,将应用程序“ex02_10.vbp”生成可执行文件,步骤为: 执行“文件→生成ex02_10.exe”菜单命令,则出现“生成工程”窗口。 单击“选项”按钮,打开“工程属性”窗口,该对话框中有“生成”和“编译”两个标签。选中“生成”标签,单击“确定”按钮,回到“生成工程”对话框,再单击“确定”按钮,即开始生成可执行文件。 现在,在你的机器上双击这个可执行文件的图标,应用程序久可以执行了。