第 3章 窗 体本章的学习要点
窗体的结构
窗体的属性、事件、方法
多窗体
MDI窗体
窗体的结构与 Windows下的窗口十分类似,在程序运行前,即设计阶段,称为窗体;程序运行后也可以称为窗口。
3.1 窗体的结构系统菜单窗体最小化按钮最大化按钮关闭按钮标题栏
[窗体名,] Caption=字符串
窗体的属性
Name:设置窗体的名称。
所有对象都具有该属性;
在同一范围内不允许该属性值相同;
该属性只能通过属性窗口设置,在代码窗口中不能改变 。
Caption:设置窗体标题栏上显示的内容。
在代码窗口修改该属性值的语法格式为:
注意 Caption属性与 Name属性的区别!
3.2 窗体的三要素
Name
Caption
Command1.Caption="确定 "
对象名,属性名 =属性值
Sub 对象名 _事件名 ()
对象名,方法 [(参数 )]
[窗体名 ].AutoRedraw={True | False}
窗体的属性
AutoRedraw:设置窗体被遮盖后是否要自动重绘窗体上的内容。语法格式为:
BackColor,ForeColor:返回或设置窗体的背景颜色和前景颜色。
属性值是一个 16进制的常数;通常在编写代码时,
常用 Qbcolor或 RGB函数为其设置颜色。
3.2 窗体的三要素
Form1.BackColor = &HFF0000
'低字节到高字节依次表示红、绿和蓝的值
Form1.BackColor = RGB(255,0,0)
Form1.ForeColor = vbRed
RGB颜色函数讲解蓝红 绿
256等份 256等份 256等份
Form1.BackColor = RGB(255,13,222)
窗体的属性
BorderStyle,设置窗体的边框样式。语法格式:
3.2 窗体的三要素窗体名,BorderStyle={0 | 1 | 2 | 3 | 4 | 5}属性值 说 明
0-None 窗体无边框
1-Fixed Single 含控制菜单、标题栏、最大、最小化按钮的固定单边框
2-Sizable 默认值,可调整的双线边框。
3-Fixed Double 含控制菜单、标题栏,无最大、最小化按钮、窗体大小固定的双线边框。
4-Fixed Tool
Window
只有关闭按钮、缩小的字体显示标题栏、
窗体大小固定的工具窗口。
5-Sizable Tool
Window
只有关闭按钮,并用缩小的字体显示标题栏、窗体大小可变的工具窗口。
注意,该属性只能在属性窗口中设置
窗体的属性
Enabled,设置窗体是否被响应。语法格式:
当该属性值为 True(默认值 )时表示窗体有效,能响应用户或系统事件;为 False时表示窗体无效,不能响应,并且窗体上的所以控件都无效。
3.2 窗体的三要素
[窗体名,] Enabled={True | False}
窗体的属性
Font系列字体属性,设置窗体上文本的字体、字号、
字形等样式。
3.2 窗体的三要素属 性 类 型 功 能
FontName 字符型 决定对象上正文的字体 (缺省为宋体 )
FontSize 整型 决定对象上正文的字体大小
FontBold 逻辑型 决定对象上正文是否是粗体
FontItalic 逻辑型 决定对象上正文是否是斜体
FontUnderline 逻辑型 决定对象上正文是否带下划线
FontStrikeThru 逻辑型 决定对象上正文是否加一删除线
窗体的属性
Height,Width:分别决定窗体大小的 高度 和 宽度 。
Top,Left:表示窗体到屏幕 上边框 和 左边框 的距离。
3.2 窗体的三要素
Top
Height
Left
Width
原点 (0,0) x
y
窗体的属性
ControlBox:取值为 True或 False,表示窗体左上角是否有 控制菜单 。
Icon:返回或设置窗体左上角显示的图标或最小化时显示的图标,通常为,ICO格式的图标文件,仅当
ControlBox属性值取 True 该属性才生效。
MinButton,MaxButton:设置窗体最小、最大化按钮是否有效。语法格式:
3.2 窗体的三要素
[窗体名,] MinButton ={True | False}
[窗体名,] MaxButton={True | False}
窗体的属性
Picture,设置窗体的背景图片。语法格式:
Visible:设置窗体在执行时是否可见。语法格式:
3.2 窗体的三要素
[窗体名,] Picture=LoadPicture ("图片文件名 ")
[窗体名,] Visible={True | False}
窗体的事件不同的对象对应不同事件的发生,VB中窗体有很多事件。在一个窗体的代码窗口中列出了所有窗体事件。
3.2 窗体的三要素在此选中对象列出选中对象事件
窗体的事件
Activate:当窗体变为激活的当前窗口时,引发本事件。
Click:当用户单击窗体时触发本事件 。
DblClick:当用户双击窗体时触发本事件。
Deactivate:当窗体失去激活状态,即另一个窗体成为当前窗口时,引发本事件。
Load:当窗体被加载到内存时触发本事件。 Load事件往往用于在启动程序时对属性和变量进行初始化。
Unload:当关闭窗体时,触发卸载事件,将窗体从内存中卸载。注意,Load事件发生时窗体是不活动的,而 Activate事件发生时窗体是活动的,Print方法不能在不活动窗体上使用,
因此 Print不能用于 Load事件中。
3.2 窗体的三要素
“双击”实际上触发两个事件,第一次按鼠标按钮时产生 Click单击事件,第二次按鼠标按钮时产生 DblClick事件 。
Private Sub Form_Click()
Form1.BackColor = vbRed
End Sub
当触发了 Form对象的 Click事件时,该事件过程 Form_Click就会被执行。
?
窗体名称为 Form1,为何在其事件过程中用 Form,详见课本 18面。
当用户双击窗体时,窗体不断变小,则应 该添加什么事件过程
?
例 3.1
Print在 Load和 Activate事件中的区别。
Private Sub Form_Load()
Print "***"
End Sub
Private Sub Form_Activate()
Print "***"
End Sub
窗体 事件示例
例:程序运行时,用户在窗体上输入字符时,
窗体上显示输入结果。 分析:
添加什么事件过程
在窗体上显示输入结果用什么代码
当用户输入 a时触发了 Form_KeyPress事件过程,该过程的参数 KeyAscii值是多少?通过什么方法在窗体上显示出 a?
代码:
Form_KeyPress
97
Private Sub Form_KeyPress(KeyAscii
As Integer)
Print Chr(KeyAscii)
End Sub
Form1.print
chr(x)函数:将 ASCII码转换为对应的字符;
窗体的方法
在代码窗口中,输入,form1.”后,会显示该窗体对象的所有属性和方法。
3.2 窗体的三要素对象的属性和方法属性方法
窗体的方法
Show和 Hide:分别用于显示和隐藏窗体。调用格式,[窗体名,]Show [Style]
[窗体名,]Hide
窗体名缺省,表示显示或隐藏当前窗体;
Show方法的 Style参数取值:
– vbModel(模式 ):不允许用户同时与其他窗体交互。
– vbModeless(无模式 ):允许用户同时与其他窗体交互。
3.2 窗体的三要素
窗体的方法
Print:用于将文本输出到窗体的一行上。调用格式:
[对象名,]Print [输出项列表 ][{; |,}]
对象除了窗体外,还可以是图片框 (PictureBox)、
Debug或打印机 (Printer),若缺省对象名,表示将文本输出到当前窗体上。
输出项列表:是由 0个,1个或多个待输出的数值表达式或字符串表达式构成;当输出项是由多个项构成,
则中间必须用逗号或分号分隔;若 Print后什么都不跟,
则表示输出一个空行。
3.2 窗体的三要素如下代码:
Private Sub Form_Click()
Print 1,-2
Print
Print "We","study"
End Sub
标准格式
窗体的方法
Print:用于将文本输出到窗体的一行上。调用格式:
[对象名,]Print [输出项列表 ][{; |,}]
对象除了窗体外,还可以是图片框 (PictureBox)、
Debug或打印机 (Printer),若缺省对象名,表示将文本输出到当前窗体上。
输出项列表:是由 0个,1个或多个待输出的数值表达式或字符串表达式构成;当输出项是由多个项构成,
则中间必须用逗号或分号分隔;若 Print后什么都不跟,
则表示输出一个空行。
3.2 窗体的三要素如下代码:
Private Sub Form_Click()
Print 1; -2
Print
Print "We"; "study"
End Sub
紧缩格式注意:
标准格式即参数以,,”分割,下一个输出项将与上一个输出项间隔 14列;紧缩格式即参数以,;”分割,下一个输出项将以紧凑格式,
紧跟着上一个输出项输出。
Print方法输出的位置是由窗体的绘图坐标
CurrentX和 CurrentY属性决定的,默认为对象的左上角 (0,0)。
该方法可以结合定位输出函数一起使用:
Spc(n):在下一个输出项前插入 n个空格;
Tab(n),输出定位在绝对 n列号上。
代码:
11
9
7
5
13
11 15
9 13 17
Private Sub Form_Click()
End Sub
Print Tab(11); "A"
Print Tab(9); "B"; Spc(3); "B"
Print Tab(7); "C"; Spc(3); "C"; Spc(3); "C"
Print Tab(5); "D"; Spc(3); "D"; Spc(3); "D"; Spc(3); "D"
10
8
6
4
3
3 3
3 3 3
3.2 窗体的三要素
窗体的方法
Cls方法:用于清除运行时窗体上或图形上的用
Print方法生成的文本和图形。语法格式:
[对象名 ].Cls
对象名可以是窗体或图片框。当对象名缺省时,
表示清除当前窗体上的内容。
例如:
Form1.Cls
Cls
Picture1.Cls
3.2 窗体的三要素
窗体的方法
Move(移动 )方法:用于移动对象,并且可以在移动时变化对象的大小。
语法格式:
[对象名,]Move Left
[,Top[,Width[,Height]]]
其中,对象名可以是窗体和除时钟、菜单以外的所有控件。窗体名缺省 (即未选对象名 )时,默认为当前窗体。 Move方法中的
Left,Top,Width,Height4个参数,单位为 twip(像素 )。
注意 !?P32
3.2 窗体的三要素
例:编写一个程序,实现功能:每单击窗体一次,窗体向右移动。 思路:窗体向右移动是一个动作,应该执行什么方法;该动作是被什么对象的什么事件触发的?
代码:
Private Sub Form_Click()
Form1.Move Left + 1500
End Sub
move
窗体 click
Form1.Move Left + 1500,top,Width+1500
? 每次移动并变大如何实现例 3.3 窗体的简单应用
编程实现:单击和双击窗体时分别改变标签和窗体标题栏的文字,单击单选按钮改变标签文字。
界面设计 对象 属性 属性值
Form Name Form1Caption 学习之道
Label
Name Label1
Caption 空白
BackColor &H00FFC0C0&
OptionButt
on
Name Option1
Caption 上课
OptionButt
on
Name Option2
Caption 复习属性设置
编写代码
Private Sub Form_Click() ‘窗体的单击事件过程
Label1.Caption = "成功通过考试! "
End Sub
Private Sub Form_DblClick() ‘窗体的双击事件过程
Form1.Caption = "欢迎你学习 VB!! "
End Sub
Private Sub Option1_Click() ‘单选按钮的单击事件过程
Label1.Caption = "听明白 勤思考 记下来! "
End Sub
Private Sub Option2_Click() ' 单选按钮的单击事件过程
Label1.Caption = "多上机 善提问 多总结! "
End Sub
3.3 多窗体
多窗体是在应用程序中有多个并列的普通窗体。
多窗体的建立步骤,
(1)建立第一个窗体,选择“新建”选项卡创建一个新窗体,若选择“现存”选项卡则添加一个属于其他工程的窗体。
(2)通过选择“工程” →,添加窗体”或工具栏上的添加窗体按钮来创建另一个新窗体。
3.3 多窗体
多窗体的运行顺序设置:
选择“工程”菜单中的最后一项“工程 1属性”命令,在弹出的对话框中改变启动对象例 3.4
设计一个多窗体,实现两个界面的交换。
为程序添加窗体 Form2,Form1窗体加载一个图片,Form2窗体加载时为空白。
单文档界面 SDI(Single Documents Interface)
任何时刻都只能打开一个文档,若要打开别的文档,则必须先关闭原来的文档。
多文档界面 MDI(Multiple Documents
Interface),可同时打开多个文档,每个文档占用一个窗口,用户可以在已经打开的窗口之间切换,简化了文档之间的信息转换。
3.3 MDI窗体多文档界面通常可以分为一个应用程序 (父窗体 )
中包含多个文档 (子窗体 )。
创建 MDI窗体
新建一个工程。此时工程中包含一个窗体 Form1。
创建 MDI窗体。选择,工程” ----“添加 MDI窗体 -
---“打开”,即创建 MDI父窗体 MDIForm1。
建立 MDI子窗体。双击工程资源管理器窗口中的
Form1,在属性窗口中找到 MDIChild属性,把它的值设置为 True,创建 MDI子窗体。
改变启动对象。在“工程” ----“工程属性”中改变启动对象,把 MDIForm1窗体设置为启动窗体。
3.3 MDI窗体
MDI窗体特性:
父窗体只能有且必须有一个;
子窗体至少有一个;
所有的子窗体无论如何操作都不能移出 MDI
窗体;
当最大化一个子窗体时,它的标题和父窗体的标题组合在一起,显示在父窗体的标题栏上;
例 3.5 MDI窗体的应用
设计界面 属性设置对象 属性 属性值
MDIFor
m
Name MDIForm1
Caption 父窗体
Form
Name Form1
Caption 子窗体 1
MDIChild True
Form
Name Form2
Caption 子窗体 2
MDIChild True
Form
Name Form3
Caption 子窗体 3
例 3.5 MDI窗体的应用
代码编写
MDIform窗体加载事件:
Private Sub MDIForm_Load()
Form1.Show
Form2.Show
Form3.Show
End Sub
窗体的结构
窗体的属性、事件、方法
多窗体
MDI窗体
窗体的结构与 Windows下的窗口十分类似,在程序运行前,即设计阶段,称为窗体;程序运行后也可以称为窗口。
3.1 窗体的结构系统菜单窗体最小化按钮最大化按钮关闭按钮标题栏
[窗体名,] Caption=字符串
窗体的属性
Name:设置窗体的名称。
所有对象都具有该属性;
在同一范围内不允许该属性值相同;
该属性只能通过属性窗口设置,在代码窗口中不能改变 。
Caption:设置窗体标题栏上显示的内容。
在代码窗口修改该属性值的语法格式为:
注意 Caption属性与 Name属性的区别!
3.2 窗体的三要素
Name
Caption
Command1.Caption="确定 "
对象名,属性名 =属性值
Sub 对象名 _事件名 ()
对象名,方法 [(参数 )]
[窗体名 ].AutoRedraw={True | False}
窗体的属性
AutoRedraw:设置窗体被遮盖后是否要自动重绘窗体上的内容。语法格式为:
BackColor,ForeColor:返回或设置窗体的背景颜色和前景颜色。
属性值是一个 16进制的常数;通常在编写代码时,
常用 Qbcolor或 RGB函数为其设置颜色。
3.2 窗体的三要素
Form1.BackColor = &HFF0000
'低字节到高字节依次表示红、绿和蓝的值
Form1.BackColor = RGB(255,0,0)
Form1.ForeColor = vbRed
RGB颜色函数讲解蓝红 绿
256等份 256等份 256等份
Form1.BackColor = RGB(255,13,222)
窗体的属性
BorderStyle,设置窗体的边框样式。语法格式:
3.2 窗体的三要素窗体名,BorderStyle={0 | 1 | 2 | 3 | 4 | 5}属性值 说 明
0-None 窗体无边框
1-Fixed Single 含控制菜单、标题栏、最大、最小化按钮的固定单边框
2-Sizable 默认值,可调整的双线边框。
3-Fixed Double 含控制菜单、标题栏,无最大、最小化按钮、窗体大小固定的双线边框。
4-Fixed Tool
Window
只有关闭按钮、缩小的字体显示标题栏、
窗体大小固定的工具窗口。
5-Sizable Tool
Window
只有关闭按钮,并用缩小的字体显示标题栏、窗体大小可变的工具窗口。
注意,该属性只能在属性窗口中设置
窗体的属性
Enabled,设置窗体是否被响应。语法格式:
当该属性值为 True(默认值 )时表示窗体有效,能响应用户或系统事件;为 False时表示窗体无效,不能响应,并且窗体上的所以控件都无效。
3.2 窗体的三要素
[窗体名,] Enabled={True | False}
窗体的属性
Font系列字体属性,设置窗体上文本的字体、字号、
字形等样式。
3.2 窗体的三要素属 性 类 型 功 能
FontName 字符型 决定对象上正文的字体 (缺省为宋体 )
FontSize 整型 决定对象上正文的字体大小
FontBold 逻辑型 决定对象上正文是否是粗体
FontItalic 逻辑型 决定对象上正文是否是斜体
FontUnderline 逻辑型 决定对象上正文是否带下划线
FontStrikeThru 逻辑型 决定对象上正文是否加一删除线
窗体的属性
Height,Width:分别决定窗体大小的 高度 和 宽度 。
Top,Left:表示窗体到屏幕 上边框 和 左边框 的距离。
3.2 窗体的三要素
Top
Height
Left
Width
原点 (0,0) x
y
窗体的属性
ControlBox:取值为 True或 False,表示窗体左上角是否有 控制菜单 。
Icon:返回或设置窗体左上角显示的图标或最小化时显示的图标,通常为,ICO格式的图标文件,仅当
ControlBox属性值取 True 该属性才生效。
MinButton,MaxButton:设置窗体最小、最大化按钮是否有效。语法格式:
3.2 窗体的三要素
[窗体名,] MinButton ={True | False}
[窗体名,] MaxButton={True | False}
窗体的属性
Picture,设置窗体的背景图片。语法格式:
Visible:设置窗体在执行时是否可见。语法格式:
3.2 窗体的三要素
[窗体名,] Picture=LoadPicture ("图片文件名 ")
[窗体名,] Visible={True | False}
窗体的事件不同的对象对应不同事件的发生,VB中窗体有很多事件。在一个窗体的代码窗口中列出了所有窗体事件。
3.2 窗体的三要素在此选中对象列出选中对象事件
窗体的事件
Activate:当窗体变为激活的当前窗口时,引发本事件。
Click:当用户单击窗体时触发本事件 。
DblClick:当用户双击窗体时触发本事件。
Deactivate:当窗体失去激活状态,即另一个窗体成为当前窗口时,引发本事件。
Load:当窗体被加载到内存时触发本事件。 Load事件往往用于在启动程序时对属性和变量进行初始化。
Unload:当关闭窗体时,触发卸载事件,将窗体从内存中卸载。注意,Load事件发生时窗体是不活动的,而 Activate事件发生时窗体是活动的,Print方法不能在不活动窗体上使用,
因此 Print不能用于 Load事件中。
3.2 窗体的三要素
“双击”实际上触发两个事件,第一次按鼠标按钮时产生 Click单击事件,第二次按鼠标按钮时产生 DblClick事件 。
Private Sub Form_Click()
Form1.BackColor = vbRed
End Sub
当触发了 Form对象的 Click事件时,该事件过程 Form_Click就会被执行。
?
窗体名称为 Form1,为何在其事件过程中用 Form,详见课本 18面。
当用户双击窗体时,窗体不断变小,则应 该添加什么事件过程
?
例 3.1
Print在 Load和 Activate事件中的区别。
Private Sub Form_Load()
Print "***"
End Sub
Private Sub Form_Activate()
Print "***"
End Sub
窗体 事件示例
例:程序运行时,用户在窗体上输入字符时,
窗体上显示输入结果。 分析:
添加什么事件过程
在窗体上显示输入结果用什么代码
当用户输入 a时触发了 Form_KeyPress事件过程,该过程的参数 KeyAscii值是多少?通过什么方法在窗体上显示出 a?
代码:
Form_KeyPress
97
Private Sub Form_KeyPress(KeyAscii
As Integer)
Print Chr(KeyAscii)
End Sub
Form1.print
chr(x)函数:将 ASCII码转换为对应的字符;
窗体的方法
在代码窗口中,输入,form1.”后,会显示该窗体对象的所有属性和方法。
3.2 窗体的三要素对象的属性和方法属性方法
窗体的方法
Show和 Hide:分别用于显示和隐藏窗体。调用格式,[窗体名,]Show [Style]
[窗体名,]Hide
窗体名缺省,表示显示或隐藏当前窗体;
Show方法的 Style参数取值:
– vbModel(模式 ):不允许用户同时与其他窗体交互。
– vbModeless(无模式 ):允许用户同时与其他窗体交互。
3.2 窗体的三要素
窗体的方法
Print:用于将文本输出到窗体的一行上。调用格式:
[对象名,]Print [输出项列表 ][{; |,}]
对象除了窗体外,还可以是图片框 (PictureBox)、
Debug或打印机 (Printer),若缺省对象名,表示将文本输出到当前窗体上。
输出项列表:是由 0个,1个或多个待输出的数值表达式或字符串表达式构成;当输出项是由多个项构成,
则中间必须用逗号或分号分隔;若 Print后什么都不跟,
则表示输出一个空行。
3.2 窗体的三要素如下代码:
Private Sub Form_Click()
Print 1,-2
Print "We","study"
End Sub
标准格式
窗体的方法
Print:用于将文本输出到窗体的一行上。调用格式:
[对象名,]Print [输出项列表 ][{; |,}]
对象除了窗体外,还可以是图片框 (PictureBox)、
Debug或打印机 (Printer),若缺省对象名,表示将文本输出到当前窗体上。
输出项列表:是由 0个,1个或多个待输出的数值表达式或字符串表达式构成;当输出项是由多个项构成,
则中间必须用逗号或分号分隔;若 Print后什么都不跟,
则表示输出一个空行。
3.2 窗体的三要素如下代码:
Private Sub Form_Click()
Print 1; -2
Print "We"; "study"
End Sub
紧缩格式注意:
标准格式即参数以,,”分割,下一个输出项将与上一个输出项间隔 14列;紧缩格式即参数以,;”分割,下一个输出项将以紧凑格式,
紧跟着上一个输出项输出。
Print方法输出的位置是由窗体的绘图坐标
CurrentX和 CurrentY属性决定的,默认为对象的左上角 (0,0)。
该方法可以结合定位输出函数一起使用:
Spc(n):在下一个输出项前插入 n个空格;
Tab(n),输出定位在绝对 n列号上。
代码:
11
9
7
5
13
11 15
9 13 17
Private Sub Form_Click()
End Sub
Print Tab(11); "A"
Print Tab(9); "B"; Spc(3); "B"
Print Tab(7); "C"; Spc(3); "C"; Spc(3); "C"
Print Tab(5); "D"; Spc(3); "D"; Spc(3); "D"; Spc(3); "D"
10
8
6
4
3
3 3
3 3 3
3.2 窗体的三要素
窗体的方法
Cls方法:用于清除运行时窗体上或图形上的用
Print方法生成的文本和图形。语法格式:
[对象名 ].Cls
对象名可以是窗体或图片框。当对象名缺省时,
表示清除当前窗体上的内容。
例如:
Form1.Cls
Cls
Picture1.Cls
3.2 窗体的三要素
窗体的方法
Move(移动 )方法:用于移动对象,并且可以在移动时变化对象的大小。
语法格式:
[对象名,]Move Left
[,Top[,Width[,Height]]]
其中,对象名可以是窗体和除时钟、菜单以外的所有控件。窗体名缺省 (即未选对象名 )时,默认为当前窗体。 Move方法中的
Left,Top,Width,Height4个参数,单位为 twip(像素 )。
注意 !?P32
3.2 窗体的三要素
例:编写一个程序,实现功能:每单击窗体一次,窗体向右移动。 思路:窗体向右移动是一个动作,应该执行什么方法;该动作是被什么对象的什么事件触发的?
代码:
Private Sub Form_Click()
Form1.Move Left + 1500
End Sub
move
窗体 click
Form1.Move Left + 1500,top,Width+1500
? 每次移动并变大如何实现例 3.3 窗体的简单应用
编程实现:单击和双击窗体时分别改变标签和窗体标题栏的文字,单击单选按钮改变标签文字。
界面设计 对象 属性 属性值
Form Name Form1Caption 学习之道
Label
Name Label1
Caption 空白
BackColor &H00FFC0C0&
OptionButt
on
Name Option1
Caption 上课
OptionButt
on
Name Option2
Caption 复习属性设置
编写代码
Private Sub Form_Click() ‘窗体的单击事件过程
Label1.Caption = "成功通过考试! "
End Sub
Private Sub Form_DblClick() ‘窗体的双击事件过程
Form1.Caption = "欢迎你学习 VB!! "
End Sub
Private Sub Option1_Click() ‘单选按钮的单击事件过程
Label1.Caption = "听明白 勤思考 记下来! "
End Sub
Private Sub Option2_Click() ' 单选按钮的单击事件过程
Label1.Caption = "多上机 善提问 多总结! "
End Sub
3.3 多窗体
多窗体是在应用程序中有多个并列的普通窗体。
多窗体的建立步骤,
(1)建立第一个窗体,选择“新建”选项卡创建一个新窗体,若选择“现存”选项卡则添加一个属于其他工程的窗体。
(2)通过选择“工程” →,添加窗体”或工具栏上的添加窗体按钮来创建另一个新窗体。
3.3 多窗体
多窗体的运行顺序设置:
选择“工程”菜单中的最后一项“工程 1属性”命令,在弹出的对话框中改变启动对象例 3.4
设计一个多窗体,实现两个界面的交换。
为程序添加窗体 Form2,Form1窗体加载一个图片,Form2窗体加载时为空白。
单文档界面 SDI(Single Documents Interface)
任何时刻都只能打开一个文档,若要打开别的文档,则必须先关闭原来的文档。
多文档界面 MDI(Multiple Documents
Interface),可同时打开多个文档,每个文档占用一个窗口,用户可以在已经打开的窗口之间切换,简化了文档之间的信息转换。
3.3 MDI窗体多文档界面通常可以分为一个应用程序 (父窗体 )
中包含多个文档 (子窗体 )。
创建 MDI窗体
新建一个工程。此时工程中包含一个窗体 Form1。
创建 MDI窗体。选择,工程” ----“添加 MDI窗体 -
---“打开”,即创建 MDI父窗体 MDIForm1。
建立 MDI子窗体。双击工程资源管理器窗口中的
Form1,在属性窗口中找到 MDIChild属性,把它的值设置为 True,创建 MDI子窗体。
改变启动对象。在“工程” ----“工程属性”中改变启动对象,把 MDIForm1窗体设置为启动窗体。
3.3 MDI窗体
MDI窗体特性:
父窗体只能有且必须有一个;
子窗体至少有一个;
所有的子窗体无论如何操作都不能移出 MDI
窗体;
当最大化一个子窗体时,它的标题和父窗体的标题组合在一起,显示在父窗体的标题栏上;
例 3.5 MDI窗体的应用
设计界面 属性设置对象 属性 属性值
MDIFor
m
Name MDIForm1
Caption 父窗体
Form
Name Form1
Caption 子窗体 1
MDIChild True
Form
Name Form2
Caption 子窗体 2
MDIChild True
Form
Name Form3
Caption 子窗体 3
例 3.5 MDI窗体的应用
代码编写
MDIform窗体加载事件:
Private Sub MDIForm_Load()
Form1.Show
Form2.Show
Form3.Show
End Sub