第二章 创建用户界面

67
江江江江江江江江江江 Visual Basic 程程程程 程程程 程程程程程程

description

第二章 创建用户界面. 教学要求. 掌握窗体的常用属性、事件和方法以及多窗体和 MDI 窗体的概念; 掌握常用控件: 文本框 、 标签 、 命令按钮 、 列表框 、 组合框 、 图片框 、 单选按钮 和 复选框 的常用属性、事件和方法 ; 掌握菜单的制作和使用方法 。. 教学内容. 2.1 创建窗体 2.2 Visual Basic 的常用控件 2.3 制作菜单. 2.1 创建窗体. 窗体 : 窗体是 VB 应用程序的基本构造模块,用于创建 VB 应用程序用户界面或对话框,是包容各种控件对象的 容器 。 由标题栏、边框以及客户区组成。. - PowerPoint PPT Presentation

Transcript of 第二章 创建用户界面

Page 1: 第二章 创建用户界面

江苏省计算机等级考试

Visual Basic 程序设计

第二章 创建用户界面第二章 创建用户界面

Page 2: 第二章 创建用户界面

2

Visual Basic 程序设计

掌握窗体的常用属性、事件和方法以及多窗体和 MDI 窗体的概念;

掌握常用控件:文本框、标签、命令按钮、列表框、组合框、图片框、单选按钮和复选框的常用属性、事件和方法 ;

掌握菜单的制作和使用方法 。

教学要求

Page 3: 第二章 创建用户界面

Visual Basic 程序设计

3

2.1 创建窗体

2.2 Visual Basic 的常用控件

2.3 制作菜单

教学内容

Page 4: 第二章 创建用户界面

4

Visual Basic 程序设计

窗体:

窗体是 VB应用程序的基本构造模块,用于创建VB应用程序用户界面或对话框,是包容各种控件对象的容器。 由标题栏、边框以及客户区组成。

2.1 创建窗体

Page 5: 第二章 创建用户界面

5

Visual Basic 程序设计2.1.1 窗体的属性、方法与事件

Name (名称):窗体名称 , 在程序代码中,被作为对象的标识名,以识别不同的窗体对象,自行命名窗体时,必须以一个字母开头,可包含数字和下划线,不能包含空格和标点符号,长度小于 40个字符。

Caption :窗体标题,是出现在窗体标题栏上的文本,缺省使用窗体名。

BackColor 与 ForeColor :窗体的背景色与前景色

BorderStyle :窗体边框风格。设定值及相关的 VB 内部常量及不同风格详见下表:

1 、常用属性

Page 6: 第二章 创建用户界面

6

Visual Basic 程序设计

常数 设置值 描述vbBSNone 0 无(没有边框或与边框相关的元素)vbFixedSingle 1 固定单边框。可以包含控制菜单框, 标题栏和关闭按钮,不能改变尺寸。vbSizable 2 可调整的边框。可以改变窗体大小。 (缺省值)vbFixedDouble 3 对话框风格的窗体。大小不能改变。vbFixedToolWindow 4 工具栏风格窗体。大小不能改变。vbSizableToolWindow 5 工具栏风格窗体。大小可变。

BorderStyle 属性的六种设置值

Page 7: 第二章 创建用户界面

7

Visual Basic 程序设计

Enabled :活动属性。缺省值为” True”,当设置为” False”时,窗口及其上控件将不能被访问。

Left 、 Top 、 Height 和 Width :决定窗体位置与大小。Left 和 Top� 是窗体左上角的坐标(屏幕左上角为坐标零点);Height 和 Width 是窗体的高度和宽度, � 单位均为特维;

Font :字体属性,设置窗体上正文字体、字型、字号等;

Visible: 可见属性。缺省为“ True”;当设置为“ False”时,窗体隐藏,注意:此属性只在运行时生效。

Picture: 背景图片属性。

Moveable :可移动属性,缺省为 True, 窗体在运行时可拖动, False 时,不能拖动;

窗体常用属性

Page 8: 第二章 创建用户界面

8

Visual Basic 程序设计

在 VB中,有两种设置窗体(或其他对象)属性值的方法。在设计时,通过属性窗口为其设定各种属性值;在程序执行过程中改变属性值,即通过程序代码改变属性值

在程序代码中则使用如下格式的代码行来改变属性值: Object . Property = Expression式中, Object 是对象名; Property 是属于该对象的某个属性名; Expression 是为该属性赋予的值 ,必须和属性类型一致,即属性是字符型,表达式也应是字符型;属性是逻辑型,表达式也应是逻辑型。

例: Labe11.Caption =" 欢迎学习 VB!“ Form1.Enable = False

Form1.Caption = Label1.Caption

2.1.2 定制窗体属性

Page 9: 第二章 创建用户界面

9

Visual Basic 程序设计

窗体的常用方法 Show : 显示方法。 如: form2.Show Hide : 隐藏方法; 如: form2. Hide Move : 移动方法;如: form1.Move [left,top,width,height] Print : 打印方法; Cls : 清除方法 ,清除窗体上所有打印的文本或图形 Refresh : 刷新方法;通常窗体的刷新是自动进行的。

方法可使对象执行一个动作或任务。 使用方法的格式是: 对象名 .方法 或 对象名 .方法 [Arg1,Arg2,...]

后一种方法是带有参数的方法。

窗体的常用方法

Page 10: 第二章 创建用户界面

10

Visual Basic 程序设计

Private Sub Command1_Click()

Dim inchw, inchh

inchw = Form1.Width

inchh = Form1.Height

MsgBox “ 将窗体移动到屏幕的左上角 , 同时尺寸缩小为原来的一半 "

Form1.Move 0, 0, inchw / 2, inchh / 2

End Sub

例 : 使用 Move 方法移动一个窗体,重新定位在屏幕左上角,尺

寸缩小一倍。

举例:

Page 11: 第二章 创建用户界面

11

Visual Basic 程序设计

事件:能够被对象所识别的动作 ; 当某事件发生了,系统会自动执行其事件过程内的代码事件过程的一般格式: Private Sub 对象名 _事件名( [ 参数表 ]) (程序代码) End Sub例如:

窗体的常用事件 Click : 单击事件; DblClick : 双击事件; Load : 装载事件; Resize : 在窗体被改变大小时,会触发本事件; Activate : 激活事件,当窗体变为当前窗口时,引发本事件; Deactivate : 失去激活事件,当窗体失去激活状态,即另一个 窗体成为当前窗口时,引发本事件。

Private Sub Form_Click()

’vb 语句 End Sub

窗体常用事件

Page 12: 第二章 创建用户界面

Visual Basic 程序设计

12

2.1.3 窗体的显示、隐藏、装载和卸载

1、窗体的显示与隐藏

2、装载窗体和Load事件

3、卸载窗体与Unload事件 4、 End 语 句

Page 13: 第二章 创建用户界面

13

Visual Basic 程序设计

( 1 ) 显示窗体,可在程序中加入以下代码: Formname.Show [Style]

其中: Formname 是要显示的窗体名。 Show 方法的 Style参数决定窗体是有模式的( vbModel )还是无模式的( vbModeless )。

有模式窗体不允许用户同时与应用程序的其他窗体交互,如 Windows 程序中的命令执行确认窗口;无模式窗体则允许用户与一个程序的其他窗口自由交互,如 VB环境中的工程、属性和代码窗口等,缺省值是无模式

1 、窗体的显示与隐藏

( 2 )隐藏窗体,可在程序中加入以下代码: Formname.Hide 其中: Formname 是要隐藏的窗体名。

Page 14: 第二章 创建用户界面

14

Visual Basic 程序设计

( 1)编写事件过程时,建议不要自行输入程序框架,而应选定对象和事件过程,由系统自动产生框架。

( 2)命令按钮 1的单击事件名为 Command1_Click ,命令按钮2的单击事件名为 Command2_Click ,但对于一个窗体,单击事

件过程名为 Form_Click ,而不是 Form1_Click ,即窗体的事件过程中的对象名是 FORM ,而非具体的 name 属性值。

例:单击窗体 1,显示窗体 2。 Private Sub Form_Click () Form2.Show End Sub

注意:

Page 15: 第二章 创建用户界面

15

Visual Basic 程序设计2 、装载窗体和 Load 事件

使用装载语句可把窗体(或其他对象)载入内存,但并不显示它。

装载语句的格式是:Load Object

其中: Object是窗体名(对象名) 由于 VB应用程序在执行时,会自动装载启动窗体,所以没有必要对启动窗体使用 Load语句。

当系统装载窗体时,将引发窗体的 Load 事件;

在使用 Show 方法显示窗体时,也会自动将尚未载入内存的窗体装入内存,并引发该窗体的 Load 事件。

Page 16: 第二章 创建用户界面

16

Visual Basic 程序设计3 、卸载窗体与 Unload 事件

使用卸载语句可把窗体(或其他对象)从内存卸载。

卸载语句的格式是: Unload Object

其中: Object 是窗体名(对象名)

卸载将使该对象的所有属性重新恢复为设计态时设定的初始

值;卸载还将引发对象的 Unload 事件。

如果卸载的对象是程序唯一的窗体,则将终止程序的运行。

一起来看个例子吧!

Page 17: 第二章 创建用户界面

17

Visual Basic 程序设计4.End 语句

在程序代码中可使用 End语句结束程序运行,形式是:

End

执行该语句将终止应用程序的执行,并从内存卸载所有窗体。

Page 18: 第二章 创建用户界面

18

Visual Basic 程序设计

格式: [Object.]Print < 输出项表 >

功能:将输出项显示在窗体或图片框上。

说明:( 1)对象名缺省,则输出到窗体上;

( 2)输出项之间用逗号或分号间隔,若用逗号间隔,则为标准输出;若用分号间隔,则为紧凑输出。

2.1.4 Print 方法

Private Sub command1_Click() Print 1, 2, 3 Print 1; 2; 3 Print Print "ab", "cd" Print "ab;"; "cd;" End Sub

观察下列 Print 语句的执行结果。

Page 19: 第二章 创建用户界面

19

Visual Basic 程序设计多窗体程序设计

当应用程序中有多个窗体界面时,设计时,同样先新建一个工程,其中有一个窗体 form1 ,然后通过下列步骤,设计多窗体:1、添加并设计窗体 “工程” “添加窗体”,再依次设计每一个窗体的界面元素以及相应的事件过程;2、设置启动窗体 “工程” “工程属性”,在“通用”选项卡上,设置“启动对象”。注意:( 1)在启动窗体中,必须要有对其他窗体的引用接口,可以是菜单命令或命令按钮的形式,否则其他窗体将无法显示。 ( 2)多窗体应用程序保存时,先将每一个窗体以一个独立的窗体文件保存,扩展名为 .frm ,再保存工程文件。 ( 3)多窗体应用程序打开时,直接打开工程文件,将会把该程序中所有的窗体文件都装载。

Page 20: 第二章 创建用户界面

20

Visual Basic 程序设计MDI (多文档界面)窗体

在多窗体应用程序中,一般有一个 MDI 窗体(框架,父窗体)构成外部容器窗口,再包括不同的子窗体构成内层窗体界面。创建 MDI 应用程序的步骤:1、“工程” “添加 MDI 窗体”;2、将应用程序中其它窗体的 MDIchild 属性设置为“ True”.3 、将 MDI 窗体设置为启动窗体。注意:1、一个应用程序中,只有一个 MDI 窗体;2、在 MDI 窗体上,除 PictureBox 和 Timer外,一般不能直接放置其他控件,3、关闭 MDI 窗体,将自动关闭所有打开的子窗体。4、运行时,子窗体只能在 MDI 窗体内移动。 举例

Page 21: 第二章 创建用户界面

21

Visual Basic 程序设计2.2 Visual Basic 的常用控件2.2 Visual Basic 的常用控件

2.2.1 概述

2.2.2 常用控件

Page 22: 第二章 创建用户界面

22

Visual Basic 程序设计控件名 功能

Pointer 指针 用于改变控件大小和位置等 PictureBox 图片框 显示图形或图象Label 标签 用于文字说明,显示提示性信息TextBox 文本框 用于字符输入Frame 框架 用于组合控件,将控件分组CommandButton 命令按钮 单击执行命令CheckBox 复选框 用于多项选择OptionButton 选项按钮 用于从多个选项中单选其一ComboBox 组合框 列表框与文本框的组合ListBox 列表框 列出多个选项供选择H.ScrollBar 水平滚动条 产生水平滚动条V.ScrollBar 垂直滚动条 产生垂直滚动条Timer 计时器 用于定时DriveListBox 驱动器列表框 DirListBox 文件夹列表框 FileListBox 文件列表框 Shape 图形 Line 线条 Image 图象 Data 数据控件 OLE 控件

基本控件

基本控件

Page 23: 第二章 创建用户界面

Visual Basic 程序设计

23

VB 通过控件箱提供了这些和用户进行交互的可视化部件,即 控件。 1. 文本框( Text Box )2. 标签( Label )3. 命令按钮( Command Button )4. 列表框( ListBox )5. 组合框( ComboBox )6. 图象控件( Image )和图片框( PictureBo

x )7. 选项按钮( Option Button )、复选框8. CheckBox )与框架控件( Frame )9. 滚动条控件( HScrollBar 和 VScrollBar )10.定时器控件 (Timer)

常用控件

Page 24: 第二章 创建用户界面

24

Visual Basic 程序设计1. 文本框( Text Box )

[ 功能 ] :用于接收用户在框内输入的字符信息,或显示由程序代码产生的信息。[ 属性 ] :

Name( 名称 ) :文本框的名称,

Text:文本属性,该属性值就是用户在文本框输入的内容。 (注意: TextBox 无 Caption 属性)

PasswordChar:口令属性。本属性缺省值为空字符串,表示用户由键盘输入的字符,直接在文本框中显示出来;如果该属性值为某个字符,则文本框中输入的内容均显示为该字符,用户看不见实际输入的字符,一般可用于口令输入。(如属性值设为 *)

Page 25: 第二章 创建用户界面

25

Visual Basic 程序设计

MaxLength :最大长度属性。缺省为 0 ,表示本文本框可以接收任意个字符。MultiLine:多行属性。本属性值若为“真”,则可输入多行文本;否则只能输入一行文本。该属性不能在程序中改变Scrollbars: 在文本框中添加水平和垂直滚动条。

0——无1——仅水平滚动条2——仅垂直滚动条3——均有

Alignment: 对齐属性,有三种选择0——(缺省值)文本左对齐。1——文本右对齐2——文本居中

Left 、 top 、 Width 、 Height : 相对于用户区用户区的左上角位置。

文本框

前提是 MultiLine 为 True

[ 属性 ] :

Page 26: 第二章 创建用户界面

26

Visual Basic 程序设计

[ 方法 ] :

SetFocus :设置焦点,通过本方法可使光标指向指定的文本框。

[ 事件 ] :Change :在文本框的 Text 属性 ,即文本的内容发生变 化时,就触发本事件;LostFocus :当光标离开文本框时,引发本事件。KeyPress: 当焦点在文本框,并按下任何标准字符集的按键时会引发本事件。

例:文本框

文本框

Page 27: 第二章 创建用户界面

例:在窗体 1中的文本框中输入口令,单击“判断”按纽,如口令正确,显示窗体 2,否则,弹出提示错误窗口,单击“清空”按纽,清除文本框中的口令,并将焦点设置在其中以便下次录入。

Page 28: 第二章 创建用户界面

28

Visual Basic 程序设计

Private Sub Command1_Click()

If Text1.Text = "cpu" Then

form2_2.Show

Else

MsgBox "sorry! you can't enter the form2!"

End If

End Sub

密码设置

清空文本框,设置焦点

Private Sub Command2_Click()

Text1.Text = ""

Text1.SetFocus

End Sub

程序代码

Page 29: 第二章 创建用户界面

29

Visual Basic 程序设计

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Text1.Text = "cpu" Then

Form2_2.Show

Else

MsgBox "sorry! you can't enter the form2!", , " 文本框 "

End If

End If

End Sub

另外一种触发方式:

Page 30: 第二章 创建用户界面

30

Visual Basic 程序设计2 、标签( Label )

[ 功能 ] :用于在窗体上增加文字说明。如用作窗体的状态栏,或为文本框、列表框等添加注释文字说明等。(1) 属性

Name :标签名称; Caption :标题属性。本属性值即为标签所显示的文本内

容; Alignment :对齐属性。缺省值为 0 ,将 Caption 文本左

对齐;若设为 1,为右对齐;设为 2,则为居中; AutoSize: 大小自适应属性,当取值为“ True” 时,标签

大小会随实际显示的内容( Caption )而变化,缺省为“ False”。 WordWrap: 字折行属性。取值为“ True” 时,标签大小垂

直扩展,即标题文字换行,为“ False” 时,则水平拓展,缺省“ False” ,该属性只有在 AutoSize 属性为“ True”时才有效。

Page 31: 第二章 创建用户界面

31

Visual Basic 程序设计

(2) 方法 Refresh :刷新; Move :移动。(3) 事件 Click (单击)、 DblClick (双击)(很少用及)

注意:

标签得不到焦点,所以无 SetFocus 方法

例 Label

Page 32: 第二章 创建用户界面

32

Visual Basic 程序设计

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Left = Command1.Left

Label1.Top = Command1.Top + Command1.Height

Label1.WordWrap = False

Label1.AutoSize = True

Label1.BackColor = vbYellow

Label1.Visible = True

Label1.Caption = " 关闭窗体,结束应用程序 "

End Sub

设置颜色

使标签可见

文本不换行

例:窗体 FORM1 上有一个命令按纽“ Close”,当鼠标光标移动动到该按钮上时,在按纽下方显示由 LABEL1提供的提示行:背景色为“淡黄色”,文字为“关闭窗体,结束应用程序”。

Page 33: 第二章 创建用户界面

33

Visual Basic 程序设计

Private Sub Command1_Click()

Unload Me

End Sub

除命令按钮外,鼠标在窗体其他位置移动时,

并不出现标签提示

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Visible = False

End Sub

Page 34: 第二章 创建用户界面

34

Visual Basic 程序设计3 、命令按钮( Command Button )

[ 功能 ] : 用户用鼠标单击命令按钮,就表示要执行一条命令,命令的具体功能则是由触发的单击事件过程中的程序代码决定。(1) 属性

Caption:标题属性。就是显示在按钮上的提示文字;Default :确定属性。当该属性为“ True” 时,按“回车键”等同于单击此按钮。在一个窗体中,也只能有一个命令按钮的该属性值为“ True”.缺省值为“ False”。Cancel :取消属性。当本属性值设为“ True” (真)时,按“ Esc” 键即等同于单击本按钮;在一个窗体中,只能有一个命令按钮的该属性设置为“ True” ,缺省值为“ False”; Enable: 有效属性,当该属性为“ False” 时,命令按钮无效, 不能响应用户事件,缺省为“ True”。

Page 35: 第二章 创建用户界面

35

Visual Basic 程序设计(2) 方法

SetFocus :设置焦点。 设置为焦点的按钮,标题周围将有一个边框,用户直接按“回车键”时,将会触发执行该按钮的单击事件。(3) 事件 Click ,即鼠标单击。这是命令按钮最基本、最重要的事件。

书 P23 例 2-2

Page 36: 第二章 创建用户界面

36

Visual Basic 程序设计例 2-2 一个使用命令按钮的程序示例

Page 37: 第二章 创建用户界面

Private Sub Command1_Click()

Label1.Caption = " 报效祖国 "

Command2.Enabled = True

Command2.SetFocus

Command1.Enabled = False

End Sub

使按钮 2变为活动状态

Private Sub Command2_Click()

Label1.Caption = " 努力学习 "

Command1.Enabled = True

Command1.SetFocus

Command2.Enabled = False

End Sub

使按钮 1变为非活动状态

使按钮 2具有焦点

Page 38: 第二章 创建用户界面

38

Visual Basic 程序设计4 、列表框( ListBox )

[用途 ]:列出可供用户选择的项目列表。 [ 属性 ] :List :表属性。用于保存列表内容。程序代码中,可通过表属性以及列表项序号实现对某具体列表项的访问:

[对象名 .]List(列表项序号 ) 其中的对象名即为列表框的 Name 属性值;列表项的序号从 0 开始,由上到下依次为 0、 1、 2、 3... 列表框中的列表项的添加方法:一是设计时在属性窗口的 LIST 属性值中直接添加,二是在程序运行时,在代码中通过 additem 方法添加。ListCount :列表项数目。

Page 39: 第二章 创建用户界面

39

Visual Basic 程序设计

ListIndex :列表项索引。其值为当前选中的列表项选中的列表项的序号,第一个列表项的序号为 0 ,如果未选任何项目,则其值为 -1 ;Text :列表项正文。其值为当前选中的列表项的文本,它与List (ListIndex) 相同;

即 List1.Text=List1.List(ListIndex)Columns :列属性。设置列表框中显示的列表项的列数。该属性缺省为0,只显示一列文本。逐行显示列表项,可能有垂直滚动条,取值为大于 0的值时,列表项可占多列显示;Sorted :排序属性。取值为“ True” 时,各列表项将按字母表排序,取值为“ False”时,将不排序。

[ 属性 ]

Page 40: 第二章 创建用户界面

40

Visual Basic 程序设计[ 方法 ] :

AddItem :添加列表项。使用下面的格式来添加:

[对象名 .]AddItem <列表项文本 >[,插入位置序号 ]

若不指定插入位置,则插入到列表末尾; Clear :删除列表中所有列表项。 RemoveItem :删除指定列表项。用法如下:

[对象名 .]RemoveItem 删除项序号

[ 事件 ] : 虽然列表框可以响应单击 Click 和双击 DblClick 事件。但很少使用。

例:列表框

Page 41: 第二章 创建用户界面

41

Visual Basic 程序设计

界面如图所示,在文本框中输入内容,再单击“增加”命令按纽,可以将文本框中的内容添加至列表框中;对指定的列表框选项,单击“删除”可将其删除,同时及时更新列表项的总数。

[ 属性 ]

举例

Page 42: 第二章 创建用户界面

42

Visual Basic 程序设计

Private Sub Command1_Click()

List1.AddItem Text1.Text

Label3.Caption = List1.ListCount

End Sub

Private Sub Command2_Click()

List1.RemoveItem List1.ListIndex

Label3.Caption = List1.ListCount

Text1.Text = ""

Text1.SetFocus

End Sub

将文本框的内容添加至列表框中

将列表框指定的选项进行删除

列表数目显示在标签上

Page 43: 第二章 创建用户界面

43

Visual Basic 程序设计

Private Sub Command3_Click()

List1.Clear

Label3.Caption = List1.ListCount

Text1.Text = ""

Text1.SetFocus

End Sub

Private Sub Command4_Click()

Unload Me

End Sub

全部清除

Page 44: 第二章 创建用户界面

44

Visual Basic 程序设计5 、组合框( ComboBox )

[ 功能 ] : 将文本框和列表框结合在一起,在列表框中所选项目的文本会自动填入文本框。[ 属性 ] : Style :外观属性。组合框的类型和功能由本属性设定值决定,各设置值的功能为 (见下一页 ): Text :文本属性。其取值就是用户从列表框中选定的文本内容或直接输入文本框中的内容。

注意:组合框并不会自动地把用户在文本框中输入地内容作为一个新列表项添加到列表框中,须使用如下语句: ComoBoxname.AddItem ComoBoxname.Text[方法 ]:同列表框。[事件 ]: 0和 2风格的组合框可响应 Click (单击)事件;风格1的组合框可响应 DblClick (双击)事件;带有文本框的 0和 1风格的组合框在编辑文本时可引发 Change 事件。

Page 45: 第二章 创建用户界面

45

Visual Basic 程序设计

ComboBox

组合框 Style 属性的三种选择

常数 值 描述vbComboDropDown   0 (缺省值)下拉式组合框。包括一个下               拉式列表和一个文本框。可以从列表选               择或在文本框中输入。vbComboSimple       1  简单组合框。文本框和列表框部分一直显

示在窗体上。可以从列表中选择或直接文 本框中输入。应根据实际列表项数目,调 整控件大小。

vbComboDrop-DownList   2  下拉式列表。这种样式无文本框,不允许 用户直接输入,仅允许从下拉式列表中选择。

Page 46: 第二章 创建用户界面

46

Visual Basic 程序设计组合框的外观

Page 47: 第二章 创建用户界面

47

Visual Basic 程序设计

界面如下,单击列表框中的选项,将之添加到组合框中,同时在组合框的文本框中输入内容,按回车也能添加至列表中。

组合框列表框

举例

Page 48: 第二章 创建用户界面

Private Sub Command1_Click()

Combo1.AddItem List1.Text

End Sub

Private Sub Combo1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Combo1.AddItem Combo1.Text

Combo1.Text = ""

End If

End Sub

将输入的内容添加至组合框

将列表框指定选项移动至组合框

Private Sub Command2_Click()

Combo1.RemoveItem Combo1.ListIndex

End Sub

Private Sub Command3_Click()

Combo1.Clear

End Sub

Private Sub Command4_Click()

Unload Me

End Sub

Page 49: 第二章 创建用户界面

49

Visual Basic 程序设计6、图象控件( Image )和图片框( PictureBox )

图像控件( Image )[用途 ]:显示来自图形文件的图像。

[属性 ]:Strech缩放属性:为 True 时,当图像的原始大小与控件大小不同时,会缩放图像来填充整个控件;为 False 时,自动控件大小来完整显示图片。BorderStyle 边框属性: 0时无边框, 1时有边框。 Picture: 图片属性,为要显示的图片的来源。可在设计时通过属性窗口设置,也可在代码中通过 VB 内部函数设置:

imagename.Picture=LoadPicture(“c:\pict1.bmp”)

[方法 ]: Move :移动

[事件 ]: Click dbclick

Page 50: 第二章 创建用户界面

50

Visual Basic 程序设计

[用途 ]:显示图形和文本,还可用于创建动画图形。

[属性 ]:BorderStyle :边框属性。 Align: 对齐属性,指图片框在窗体上的位置。有无、上、下、左和右五种选择。 Picture: 图片属性。设置同 IMAGE 控件AutoSize :为 True 时,当图片大小与控件大小不同时,会自动改变控件大小来与图像一致,为 False 时,则不会。

[方法 ]: Move :移动; Print:打印 Cls :清空图片框

[事件 ]: Click 、 dbclick

注意: PictureBox 控件可作为控件容器,在其中放置如命令按纽、文本框等其它控件。

举例

图片框控件( PictureBox )

Page 51: 第二章 创建用户界面

51

Visual Basic 程序设计

7. 选项按钮( Option Button )、复选框( CheckBox )与框架控件( Frame )

单选按钮( OptionButton )

[用途 ]:从一组互斥的选项中选择一个。

[属性 ]: Caption: 标题属性。 Value:取值属性。单选按钮选中时,该属性值为“ True”,否则为“ False”

[方法 ]: Move 、 Refresh 、 Setfocus 等

[事件 ]: Click

注意: 一般情况下,在一组单选按钮中可设置一个按钮为“缺省”按钮,即它的 Value 属性初始状态为“ True”,根据这个设定设置整个应用程序的初始状态。

Page 52: 第二章 创建用户界面

52

Visual Basic 程序设计复选框( CheckBox )

[用途 ]:从一组选项中选择一个或多个。

[属性 ]: Caption: 标题属性。 Value:取值属性,表示复选框的状态,有三个选择

( 0——未选中、 1——选中、 2——当前不能访问),注意与单选按纽不同。Alignment: 对齐属性。

[方法 ][事件 ]:同单选按纽。

Page 53: 第二章 创建用户界面

53

Visual Basic 程序设计

在窗体上可以容纳若干个选项组。可利用框架控件或前已述及的图片框控件,作为选项组的“包容器”,把各个选项组区分开来[用途 ]:作为控件容器,将控件分组。[属性 ]: Caption: 标题属性。[方法 ]: Move: 移动[事件 ]: Click :单击 注意:若窗体上有互不相干的多组单选按钮,未防止选择时,他们之间相互干扰,必须将他们分组,分别放置在不同的框架( Frame )中。步骤:1 先在窗体上拖放一个框架控件,并选定该框架为当前对象;2 在框架中直接绘制该组中的各个按纽控件;3 若分组成功,则拖动框架时,包括其内部的控件一起移动。复选框

框架( Frame )

Page 54: 第二章 创建用户界面

54

Visual Basic 程序设计

界面如图所示,在窗体上使用框架分别建立一组复 选按钮和二组单选按钮,用户在进行选择时,文字的字体字号和风格也能发生相应的变化。

例 2-4 :

Page 55: 第二章 创建用户界面

55

Visual Basic 程序设计

Private Sub Check1_Click()

If Check1.Value = 1 Then

Text1.FontItalic = True

ElseIf Check1.Value = 0 Then

Text1.FontItalic = False

End If

End Sub

斜体

粗体Private Sub Check2_Click()

If Check2.Value = 1 Then

Text1.FontBold = True

ElseIf Check2.Value = 0 Then

Text1.FontBold = False

End If

End Sub

Page 56: 第二章 创建用户界面

56

Visual Basic 程序设计

[程序说明 ]:

因为复选框的单击结果有两种,所以在程序中使用了判断结构。而单选按钮则不存在这种情况,单击就是选定。

Private Sub Option1_Click()

Text1.FontSize = 12

End Sub

Private Sub Option2_Click()

Text1.FontSize = 14

End Sub

Private Sub Option3_Click()

Text1.FontSize = 16

End Sub

Private Sub Option4_Click()

Text1.FontName = " 宋体 "

End Sub

Private Sub Option5_Click()

Text1.FontName = " 隶书 "

End Sub

Private Sub Option6_Click()

Text1.FontName = " 黑体 "

End Sub

Page 57: 第二章 创建用户界面

57

Visual Basic 程序设计

8、滚动条控件( HScrollBar 和 VScrollBar )[ 用途 ] : 滚动条主要用于列有较长项目或者大量信息的地方。使用户在较小的区域中浏览较长的项目和信息。 ( 用于需要浏览信息,但又不支持滚动功能的控件。)(1) 属性Value: 对应于滚动框在滚动条中的相对位置。最小:水平:左;垂直:上Max 和 Min :设定滚动条 Value 属性的取值范围;(缺省: 0——32767)LargeChange: 在滚动条的空白区域单击鼠标, Value 的变化量SmallChange: 鼠标单击滚动条两端箭头时, Value 的变化量(2) 方法 Move

(3) 事件Change :滚动条不支持单击事件,当 Value 值发生变化时,触发本事件。

举例

Page 58: 第二章 创建用户界面

58

Visual Basic 程序设计例:通过红,绿,蓝三基色合成各种颜色

Page 59: 第二章 创建用户界面

59

Visual Basic 程序设计

Private Sub changecolor()

Text1.BackColor = RGB(HSbred.Value, HSbgreen.Value, HSbblue.Value)

End Sub

定义通用过程

调用过程Changecolor

在标签上显示此时红绿蓝三色的初值 , 均为 0

Private Sub Form_Load( )

changecolor

Label1.Caption = " 红 " & HSbred.Value

Label2.Caption = " 绿 " & HSbgreen.Value

Label3.Caption = " 兰 " & HSbblue.Value

End Sub

Page 60: 第二章 创建用户界面

60

Visual Basic 程序设计

Private Sub HSbblue_Change()

Label3.Caption = " 兰 " & HSbblue.Value

changecolor

End Sub改变文本框颜色显示

Private Sub HSbgreen_Change()

Label2.Caption = " 绿 " & HSbgreen.Value

changecolor

End Sub

Private Sub HSbred_Change()

Label1.Caption = " 红 " & HSbred.Value

changecolor

End Sub

Page 61: 第二章 创建用户界面

61

Visual Basic 程序设计9、定时器控件( Timer )

[用途 ]:通过设置时间间隔,当经过设定的时间后,自动触发该控件的 Timer 事件,执行其中的代码程序。

[属性 ]:

Interval :以毫秒为单位的时间间隔。取值为 0-65535 。 0 表示不起作用。

Enable :为 True 时,打开计时器,开始计时,根据 Interval值,触发 Timer 事件;为 False 时,关闭计时器。

[事件 ]:

Timer :计时器唯一支持的事件,当设定时间间隔到达后,触发。

注意:窗体上的计时器,在运行时是不可见。

Timer

Page 62: 第二章 创建用户界面

62

Visual Basic 程序设计例:

窗体上有一标签,单击“开始”按纽后,该标签在窗体上水平滚动。

Page 63: 第二章 创建用户界面

Private Sub Timer1_Timer()

If Label1.Left + Label1.Width > Form1.Width Then

Label1.Move 0

Else

Label1.Move Label1.Left + 50

End If

End Sub

Private Sub Command2_Click()

Timer1.Enabled = False

End Sub

Private Sub Command1_Click()

Timer1.Enabled = True

End Sub

Page 64: 第二章 创建用户界面

64

Visual Basic 程序设计2.3 制作菜单2.3 制作菜单

2.3.1 菜单概述

2.3.2 使用菜单编辑器

2.3.2 界面设计程序示例

2.3.4 使用帮助

Page 65: 第二章 创建用户界面

65

Visual Basic 程序设计菜单概述

菜单条 /菜单栏:位于窗体的标题栏下,包括菜单的标题;

菜单 /下拉式菜单:单击菜单标题,出现的命令列表;

菜单项:菜单命令;

子菜单:从一个菜单项分支出来的菜单;

弹出式菜单:右键快捷菜单。

Page 66: 第二章 创建用户界面

66

Visual Basic 程序设计

打开菜单编辑器对话框:“工具” “菜单编辑器”•标题: 菜单标题,直接显示在菜单中;若为菜单分隔 线,则标题为“ -”,如要设置菜单访问键,在 菜单标题中加上“ &”+字母,运行时,显示为字母, 按 Alt+字母可打开该菜单。•名称: 菜单标识,不可省略•快捷键: 一般为 Ctrl+字母,指直接执行该菜单项的键盘快 捷键。•复选属性: 指定可切换的菜单项的开关状态•有效属性: 缺省为“ True”,若为“ False”则该菜单项变为 灰色,不能响应事件•可见属性 : 缺省为“ True”,若为“ False”则该菜单项包括 其子菜单在菜单栏上均不可见•箭头: 菜单项的升降级和次序的调整

VB 将菜单也视为控件对象,若要单击菜单执行某命令,则须在代码窗口编辑该菜单对象的 Click 事件中的。

菜单编辑器

Page 67: 第二章 创建用户界面

67

Visual Basic 程序设计弹出式菜单

弹出式菜单的建立和下拉菜单一样,都是通过菜单编辑器来完成的,但弹出式菜单要将菜单的 Visible 属性设置为“ False”,并需要通过增加程序代码来实现。

例:设置窗体的弹出式菜单。

[程序代码 ]:

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then Form1.PopupMenu hh End Sub