退出
第 3章 窗体
退出
第 2页
3.1 对象的基本属性
3.2 几个常用控件
3.3 窗体的属性、事件与方法
3.4 多窗体
退出
第 3页
3.1语句和语法规则
1,Name( 名称 ) 属性
该属性是所有对象都具有的属性,它是所创建对象的名称。
2,Caption( 标题 ) 属性
字符型。表示所创建对象的标题,将显示在对象上,窗体的标题将显示
在窗体的标题栏中。
3,Height和 Width( 高度, 宽度 ) 属性
用来设置和返回控件对象的高度和宽度, 决定控件对象的大小,
4,Top和 Left( 顶边距, 左边距 ) 属性
Top和 Left属性决定了控件对象在其父对象中的位置 。
退出
第 4页
5,Enabled( 可用 ) 属性
True,允许用户操作, 并对操作做出响应 。
False,禁止用户操作, 呈暗淡色 。
例如, Text1,Enabled= False
6,Visible( 可见 ) 属性
True,程序运行时控件可见 。
False,程序运行时控件隐藏起来 。
例如, Text1.Visible = True
7,Font( 字体 ) 属性
FontName,设置字体类型, 属性值为字符型 。 如:, 宋体,,, 楷
体, 。
FontSize,设置字体大小, 属性值为整型 。 如,28,32。
FontBold,设置字体是否粗体, 属性值为逻辑型 。
FontItalic,设置字体是否斜体, 属性值为逻辑型 。
FontStrikethru,设置文本是否加删除线, 属性值为逻辑型 。
FontUnderline,设置文本是否加下划线,属性值为逻辑型。
退出
第 5页
【例 3.1】 设计一个程序,程序运行后在窗体上显示 2个文本框,文本框中
显示“沈阳”二字。
退出
第 6页
8,BackColor( 背景色 ) 属性
例如,Form1.BackColor=&HFF00AA 将窗体背景色设置为紫色
9,ForeColor( 前景色 ) 属性
10,BackStyle( 背景样式 ) 属性
0—Transparent,透明, 即不显示控件背景色 。
1—Opaque,不透明, 此时可为控件设置背景颜色 。
11,BorderStyle( 边框样式 ) 属性
0—None,控件周围没有边框 。
1—Fixed Single,控件带有单边框 。
12,Alignment( 对齐样式 ) 属性
0—Left Justify,正文左对齐 。
1—Right Justify,正文右对齐 。
2—Center,正文居中对齐 。
退出
第 7页
【 例 3.2】 设计程序, 使其在窗体上显示 5个外观不同的标签控件 。
退出
第 8页
13,AutoSize( 自动调整 ) 属性
True,可以自动调整大小 。
False,保持原设置时的大小,正文若太长将自动裁剪。
14,TabIndex属性
TabIndex属性值决定了对象的 Tab 顺序,即按 Tab键时焦点在各个
控件间移动的顺序。
15,控件默认属性
每个控件对象有且只有一个属性可以直接由控件名来代表。
例如,可以用 Text1=“Visual Basic”来代替 Text1.Text=“Visual Basic”。
退出
第 9页
3.2 几个常用控件
?标 签
?文本框
?命令按钮
退出
第 10页
标签
标签主要用来显示文本信息。
1,属性
⑴ 标签的常用属性有,Name,Caption,Height,Width,Top,Left、
Enabled,Visible,FontName,FontSize,FontBold,FontItalic、
FontUnderline,Alignment和 Autosize,BorderStyle等 。
⑵ WordWrap属性
WordWrap属性控制 Caption属性的内容能否自动换行, 属性值为逻辑型,
默认值为 False。
将 AutoSize属性设置为 True时 WordWrap属性的设置才起作用。
退出
第 11页
2,事件
标签的常用事件有:单击( Click) 和双击( DblClick)。
【例 3.3】 设计一个程序,利用 2个标签控件,显示具有浮雕效果的文字。
退出
第 12页
文本框
文本框也称编辑框,用来输入、编辑和显示文本 。
1,属性
⑴ 文本框的常用属性有,Name,Height,Width,Top,Left、
Enabled,Visible,FontName,FontSize,FontBold,FontItalic、
FontUnderline和 Alingment等 。
⑵ Text属性
返回或设置文本框中的文本信息。其取值为字符串类型,默认最大
长度为 2048个字符。
⑶ Maxlength属性
用来设置文本框中能够输入的正文内容的最大长度。其取值为整数
类型,默认设置为 0。
0:任意长字符串。
非零整数:文本框中可容纳的字符数。
退出
第 13页
⑷ MultiLine属性
该属性返回或设置文本框中是否可以输入多行文本。
其取值为逻辑型,默认设置为 False。
True,文本框可以输入或显示多行正文,同时具有文字处理器的自动换
行功能。
False,只能输入单行文本。
⑸ ScrollBars属性
该属性用来设置文本框是否具有滚动条,其取值为整数类型,默认设置
为 0。
0—None,无滚动条。
1—Horizontal,具有水平滚动条。
2—Vertical,具有垂直滚动条。
3—Both,同时具有水平和垂直滚动条。
退出
第 14页
⑹ Locked属性
该属性设置文本框在运行时是否可被编辑,其取值为逻辑型,默认值为
False。
False,可以编辑。
True,文本框中的文本不可被编辑,此时文本框相当于标签的作用。
⑺ PasswordChar属性
该属性可用于密码输入。
⑻ SelStart,SelLength和 SelText属性
在程序运行中,对文本框内容进行选择操作,这三个属性返回用户选中
的文本。
SelStart,选定的文本的开始位置,第一个字符的位置是 0。
SelLength,选定的文本长度。
SelText,选定的文本内容。
退出
第 15页
【例 3.4】 设计程序,当单击窗体时,程序会自动将 1个文本框的前 8个
字符显示到另外 1个文本框中。
退出
第 16页
2.事件
⑴ Change事件
当用户输入新内容或当程序将 Text属性设置新值时会触发该事件。
⑵ LostFocus事件
由于按下制表键( Tab) 或单击其它对象,使当前对象失去焦点时,
则引发该事件。
3.方法
文本框的常用方法,SetFocus。
格式,[对象名,]SetFocus
功能:该方法是把光标移到指定文本框中 。
退出
第 17页
4.文本框应用
【例 3.5】 设计 评分系统程序。
当程序运行时,输入 4个裁判给出的分数,单击, 显示结果, 按钮显
示出平均分。在输入分数时,可以按 Tab键使光标从左边的文本框向
右边的文本框切换。
退出
第 18页
命令按钮
1.属性
⑴ 基本属性
Name,Height,Width,Top,Left,Enabled,Visible
FontName,FontSize,BackColor
⑵ Caption属性
⑶ Default属性
True,回车键有效 。
False,回车键无效 。 默认值
⑷ Cancel属性
True,按此按钮与按 Esc键的效果相同 。
False,Esc键无效 。 默认值
⑸ Value属性
True,命令按钮被按下 。
False,命令按钮未被按下 。 默认值
退出
第 19页
⑹ Style属性
0—Standard,按钮上不能显示图形 。
1—Graphical,按钮上可以显示图形, 也可以显示文字 。
⑺ Picture属性
用来设置命令按钮上显示的图形, 条件是 Style属性值为 1。 显示的图
形文件可以是,bmp和,ico。
⑻ ToolTipText属性
用来设置当鼠标在命令按钮上停留 1秒时, 在其下面的小矩形框中显
示提示信息, 其取值为字符类型 。
例如,Command1.ToolTipText = "确认后, 单击此按钮 "
退出
第 20页
2,事件
命令按钮的主要事件有 Click事件,命令按钮不支持 DblClick事件。
【例 3.6】 编写 单词测试器程序 。
退出
第 21页
【 例 3.7】 编写设置密码程序 。 程序设计者事先在程序中设定一个密码
为, Hello”。
退出
第 22页
3.3窗体的属性、事件与方法
?窗体的属性
?窗体常用方法
?窗体常用事件
退出
第 23页
窗体的属性
1,基本属性
Name,Caption,Font,BackColor,ForeColor
Height,Width,Left,Top
【例 3.8】 用程序改变窗体的背景色和前景色。
退出
第 24页
2,Appearance属性
0:窗体显示为平面效果 。
1:窗体显示为立体效果 。
3,AutoRedraw属性
True,自动重绘该窗体上的所有内容 。
False,不会自动重绘窗体上的内容 。 默认值
4,ControlBox属性
True,窗体具有控制菜单 。 默认值
False,窗体不具有控制菜单 。
5,Enabled属性
该属性用于设置窗体是否能够对键盘或鼠标产生的事件作出反应,
默认值为 True,表示能够对事件作出反应 。
退出
第 25页
6,BorderStyle属性
7,MaxButton和 MinButton属性
True,表示窗体的, 最大化,,, 最小化, 按钮有效 。 默认值
False,表示相应的按钮无效 。
8,Moveable属性
True:表示窗体的位置可以被移动
False,表示窗体的位置不可以被移动
退出
第 26页
9,Picture属性
用于设置窗体的背景图片。
若在程序代码中设置该属性值, 则需要使用 LoadPicture函数 。
例如:
Form1.Picture = Load Picture(“c:\picture\lake.bmp”)
使用相对路径来加载图片, 即:
Form1.Picture = LoadPicture (“lake.bmp”)
当参数为空时, 即 LoadPicture()时, 表示清除图片 。
【 例 3.9】 本程序用来初始化窗体外观 。 即当窗体没有显示之前, 在加
载窗体的事件过程 Form_load中用程序对窗体的外观进行设置 。
退出
第 27页
10,Visible属性
该属性用于设置窗体是否可见 。 默认值为 True,表示窗体可见 。
11,WindowsState属性
用来指定窗体启动后的初始大小 。
0:窗体以正常方式显示 。 默认值
1:窗体最小化成图标 。
2:窗体以全屏方式出现。
退出
第 28页
窗体常用方法
1,Print方法
格式,[对象名,]Print字符串表达式
功能:用来在窗体上输出字符 。
说明:
⑴ 当省略对象名时, 默认在当前窗体中显示 。
⑵ 表达式在窗体上显示的位置由窗体的 CurrentX和 CurrentY属性决定,
在默认情况下, 从 (0,0)开始, 执行完一次 Print方法之后, CurrentY自动
加 1。
【 例 3.10】 在窗体上输出文字 。
退出
第 29页
2,Cls方法
格式,[对象名,]Cls
功能:清除在窗体上由 Print方法显示的文本, 或由 Pset,Line,Circle
等画图方法所画出的图形, 且将光标移动到窗体左上角 。
说明:
⑴ 当省略对象名而只写 Cls时, 默认清除当前窗体上的内容 。
⑵ 该方法经常写为以下形式:
Cls或 Me.Cls '清除当前窗体
Picture1.Cls '清除图片框 Picture1中的图片
退出
第 30页
3,Move方法
格式,[对象名,]Move<左边距 >[,<上边距 >[,<宽度 >[,<高度 ]]]
功能:移动窗体, 且可同时改变其大小 。
说明:
左边距, 上边距, 宽度, 高度均以 Twip为单位 。
【 例 3.11】 利用程序修改控件位置和大小 。
退出
第 31页
窗体常用事件
1,Click事件
2,DblClick事件
双击窗体空白区域或双击窗体上的一个无效控件时, 此事件被触发 。
3,Activate事件和 Deactivate事件
当窗体获得焦点变成活动窗体时, 就会触发一个 Activate事件 。
当窗体不再是活动窗体时发生 Deactivate事件 。
4,Initialize事件
当应用程序创建一个窗体时, 将触发 Initialize事件 。
5,Load事件
把窗体装入内存工作区时发生 Load事件 。
退出
第 32页
【例 3.12】 窗体的 Load事件举例。
在以下程序中,用 Form_Load事件过程对窗体的标题、大小、背景色、
前景色和字体进行初始化,在 Form_Activate事件过程中用 Print方法
显示。
退出
第 33页
6,QueryUnload事件
当关闭窗体时, 触发一个 QueryUnload事件 。
事件过程格式:
Private Sub Form_QueryUnload(Cancel As Integer,UnloadMode As Integer)

End Sub
说明:
⑴ 参数 Cancel是一个整数 。
如果该参数的取值被设定为一个非零值, 可以阻止该窗体和应用程序的关闭
如果取值为 0,该窗体将被关闭
⑵ UnloadMode参数返回一个整数或一个常数
该参数取值可以指明 QueryUnload事件的原因 。
【 例 3.13】 设计一个关不掉的窗体程序 。
退出
第 34页
7,Unload事件
Unload事件在 QueryUnload事件之后发生 。
8,Paint事件
在应用程序运行时, 若出现下列情况就会自动产生 Paint事件 。
·窗体窗口被最小化成图标, 然后又恢复正常显示状态 。
·原本遮挡着该窗体的窗体被移开并使该窗体全部或部分显露出来 。
·该窗体因其他窗体的移动而被全部或部分遮挡 。
·窗体的大小改变或移动 。
·使用 Refresh方法 。
退出
第 35页
3.4多窗体
? 建立, 移除窗体
? 加载窗体
? 显示窗体
? 隐藏窗体
? 卸载窗体
? 设计多重窗体程序应该注意的问题
? Sub main过程
退出
第 36页
建立、移除窗体
.新建一个 VB工程时,工程中只有一个窗体,默认名,
称为 Form1
.添加新窗体方法
.添加现存窗体方法
.移除窗体方法
一般调用一个窗体要经历 5个过程:加载 —显示 —使
用 —隐藏 —卸载。
退出
第 37页
加载窗体
Load方法 只是把窗体加载到内存里, 并不显示 。
格式,Load [对象名 ]
例如,Load Form2
退出
第 38页
显示窗体
Show 方法 显示窗体
格式:
[对象名 ].Show 或 [对象名 ].show 0 '显示为无模式窗体
[对象名 ].Visible = True '显示为无模式窗体
[对象名 ].Show 1 '显示为模式窗体
说明:
显示的窗体分为无模式窗体和模式窗体 。
退出
第 39页
隐藏窗体
Hide方法 隐藏窗体
格式:
[对象名 ].Hide 或 [对象名 ].Visible = False
说明:
使用 Hide方法只能隐藏窗体, 不能将窗体卸载 。
如果调用 Hide方法时该窗体还没有加载, Hide方法会自动加载该窗
体但并不予以显示 。
【例 3.14】 用 Hide 方法和 Show方法,实现两个窗体的交替显示。
退出
第 40页
卸载窗体
Unload方法 卸载窗体
格式,Unload [对象名 ]
功能:隐藏窗体同时将窗体从内存中卸载 。
【 例 3.15】 用 Show方法和 Unload方法, 实现用主窗体 Form1调用其它 2
个窗体的功能, 其中 Form3被显示为模式窗体 。
退出
第 41页
设计多重窗体程序时应该注意的问题
1,过多的使用窗体, 会降低程序的运行效率 。
2,应及时卸载不再使用的窗体, 以释放其所占的资源 。
3,在程序代码中, 要操作其他窗体的控件时, 应在控件名前写明该控件所
在的窗体的名称 。
例如,Form2.Text1.Text="多重窗体 "。
4,关键字, Me”代表代码所在的窗体,
例如:在窗体模块 Form1的程序代码中, 要卸载 Form1:
Unload Form1或 Unload Me。
退出
第 42页
Sub Main过程
Sub Main( 启动过程)是在显示多个窗体之前,执行的一个特定的过程。
Sub Main 过程建立方法。
Sub Main过程的特点如下:
·每个工程中只能有一个 Sub Main过程 。
·Sub Main过程可以被设置为工程的启动对象 。
·Sub Main过程只能在标准模块中定义 。