第六章 窗体与控件
6.1窗体基本知识
6.1.1创建用户窗体
创建用户窗体的方法是:在VBA编辑器窗口中执行“插入”-“用户窗体”,就可以插入一个默认名为UserForm1的用户窗体,同时弹出窗体控件工具箱,用户要以在窗体中插入各种插件。

6.1.2设置用户窗体的属性
1.更改用户窗体名称
更改用户窗体名称必须通过窗体的属性窗口来实现。将光标移到“名称”属性右边的属性值栏中,删除窗体的默认名,然后输入新名称。

2.更改窗体的标题文字
通过属性窗口来实现,也可以在程序运行过程中进行修改,通过后者可以更加灵活地设置窗体的标题,使窗体的标题显示当前的工作状态。
通过窗体的属性窗口更改窗体的标题文字的方法是:将光标移到caption属性右边的属性值栏中, 删除窗体的默认标题文字,然后输入新标题文字。
在程序运行过程中修改窗体的标题文字的语句如下:
窗体名称.caption=新标题文字
6.1.3加载和卸载用户窗体
1.加载并显示窗体
利用窗体对象的show方法可以把还没有加载到内存的窗体加载到内存,并显示窗体,或者显示已经加载到内存但还没有显示的窗体。
窗体名.show
默认情况下,窗体的显示是有模式的,也就是当显示窗体时,我们无法操作工作表,只能操作当前的窗体及其上面的控件,如果要在打开窗体时也能同时操作工作表,可以显示为无模式。
语句为:
窗体名.show0
2.加载但不显示窗体
利用load语句可以将窗体对象加载到内存,但不显示窗体。只要不卸载窗体,利用load语句加载到内存的窗体对象将一直存在并占用内存和资源,并且可以随时利用show方法显示窗体,或者利用hide方法隐藏窗体。语句如下:
load窗体名
3.隐藏窗体
利用窗体对象的Hide方法可以隐藏窗体。隐藏窗体时,将从屏幕上删除窗体,但在VB应用程序中并不卸载窗体,仍然可以引用隐藏窗体中的控件。
4.卸载窗体
利用unload语句可以把加载到内存中的窗体对象从内存中卸载。
unload窗体名
释放内存和资源的唯一方法是卸载窗体,并把所有引用设置为nothing.语句如下:
set 窗体名=nothing
6.1.4利用事件控制用户窗体
为窗体指定事件的具体步骤如下:
1.用鼠标双击窗体,或直接按F7键,进入窗体的代码窗口,此时,系统自动为窗体指定一个click事件。
2.若用户需要为窗体指定一个Initialize事件,则可以单击“过程/事件”框的下拉箭头,从下拉列表中选取Initialize事件。
下面程序就是在启动窗体时为组合框设置项目,并为窗体中的控件设置初始值。

双击进入代码窗口,输入以下代码:
PrivateSub UserForm_Initialize()
Me.Caption= "我的窗体"
WithComboBox1
.AddItem "机械制图"
.AddItem "计算机基础"
.AddItem "数控技术"
.Value = "机械制图"
End With
TextBox1.Value= Date
CheckBox1.Caption= "选择姓名"
OptionButton1.Caption= "选择编号"
End Sub
运用上面代码可以给窗体初始化效果如下所示:

6.2控件基本知识
6.2.1在窗体中插入控件
在窗体中插入控件,首先在控件工具箱中用鼠标选择要插入的控件,然后将鼠标移到窗体中要插入控件的位置,此时鼠标指针变为十字形状,并在鼠标指针的右下方显示该控件的图标,然后向右向下拖曳鼠标,就可以窗体中插入控件。
对于不在控件工具箱的控件,则需要“工具/附加控件”,在“可用控件”列表中勾选,比如TreeView控件来让其显示在控件工具箱中才可以使用。

6.2.2控件的属性、方法与事件
控件是一个对象,因此它也有属性、方法和事件,每一个控件都有自己的属性、方法和事件。
控件的属性如尺寸、颜色、对齐方式、外观等。
控件方法有AddItem、等。
控件事件:各个控件事件有所不同,常用的有click、chang事件等。
6.2.3设置控件的属性
尽管不同的控件有许多不同于其他控件的独有属性,但也有很多属性是许多控件都具有的,这些属性在各自的控件中的含义也是相同的。例如,width属性(宽度)、height属性(高度)、enable属性(是否可操作)、Backcolor属性,Forecolor属性(前景颜色),Font属性(字体)等。
一、标签
标签是VBA中最简单的控件,主要用于显示字符串。例如,为文本框、复合框、列表框等控件添加描述性的文字,以便用户了解这些控件的功能。标签不能作为输入信息的界面。
标签的名字是Label,插入的标签默认名字都是Label1, Label2, Label3……….
标签的默认属性是Caption属性,标签的默认事件是Click事件。
标签的基本设置项目包括Caption属性、前景样式、前景色和背景色、边框和边框外观等。

重要的属性如下:
一、行为:
1.AutoSize属性
AutoSize 属性使控件能够更改其大小(如有必要),以达到由 PreferredSize属性指定的值。通过设置 AutoSizeMode 属性,可以调整特定控件的大小调整行为。只有一些控件支持 AutoSize 属性。此外,一些支持 AutoSize 属性的控件也支持 AutoSizeMode 属性。
2.Enabled属性:控件是否可用。
3.TextAlign:文本水平对齐方式,左对齐,居中对齐,右对齐三种方式。
4.WordWrap:标签文本是否允许换行。
二、图片
1.Picture:可以为标签背景添加图片。
2. Pictureposition:标签背景图片位置。
三、外观
1.BackColor属性:背景颜色
2. BackStyle:背景模式,分两种:0-fmcycleallforms,标签背景隐藏在窗体之下。1-fmbackstyleopaue,标签背景颜色在窗体之上。
3.Bordercolor:边框颜色
4. Borderstyle:边框样式
5.Caption:标签显示的文本。
6.Controltiptext:属性来指定在屏幕提示中显示的文本,当鼠标指针悬停在控件上时。
7.Viseble:标签是否可见。
8.Forecolor:字体颜色。
四、位置
1.Height:标签的高度
2.Left:标签距窗体左边距离。
3.Top: 标签距窗体上边距离。
4.Width:标签宽度。
五、字体
1.Font属性:字体设置。
六、杂项
1.Tabindex属性:按Tab键时的索引号。控件的tabindex属性用来确定控件被放置在用户窗体上的顺序,它决定了当用户按下tab键时控件的转换顺序。
2.tabstop属性:用来确定控件是否高亮显示,那些不能与用户交互的控件的tabstop属性被设置为false。