引言
我们还是要回顾下我们要干什么?我们的目标是做一个具有查询及显示查询结果的工具。上一章介绍了窗体及其属性、事件、方法等,这个东西只能算是画个查询条件的框框,里面的具体查询条件怎么填呢。
从我们见过的软件分析,要写一个查询条件的输入,必须有输入框吧,有可能有选择框吧,有可能有多选、单选框吧,你得有确定按钮吧,本章主要描述这些东西及其初始化
一、综述
控件其实也是窗体,是上篇中的窗体的儿子、继承者。目前我们常用的有标签(Lable),文本框(TextBox),复合框(ComboBox),列表框(ListBox),复选框(CheckBox),选项按钮(OptionButton),命令按钮(CommandButton),等等。
因为控件和窗体是继承关系,所以控件的属性和窗体差不多,如位置、大小、字体相关、图片相关、鼠标相关等。但是龙生九子,子子不同,他们又会生出具有各自特点的属性。
二、属性
上面说了,龙生九子,子子不同。所以控件在继承窗体的属性时,不是全部继承,一般都是根据自身的功能去继承父亲的某些特点。同时,儿子也会生出一些自己的共性特点(属性)。
- 新属性:
textalign | 文本对齐方式 | 1 fmTextAlignLeft 2 fmTextAlignCenter 3 fmTextAlignRight | 对于listbox只对编辑框起作用 |
AutoSize | 控件调节自身大小 | ture false | true表示自动调整,当然不同的空间自动调整的含义不同 |
AutoTab | 当用户在文本框或组合框的文本框区域输入了最大允许字符数时,是否自动跳格 | ture false | MaxLength 属性规定了在文本框或组合框的文本框区域内所允许的最大字符数 |
TabIndex | 按tab键时TabIndex表示第几个跳到该控件 | 整数 | |
TabStop | TabStop表示按tab键时是否忽略该控件 | ture false | true 表示接受tab |
ControlSource | 标识用于设置或储存控件中 Value 属性的数据位置。ControlSource 属性可接受 Microsoft Excel 工作表区域 | 一般写excel单元格 | excel单元格和控件对应的value可以互相影响。意思就是你改一个另外一个就会跟着改 |
ControlTipText | 指定当用户将鼠标指针放在控件上但未按下时所显示的文本 |
三、方法
AddItem,RemoveItem方法等
四、控件初始化示例
对于控件的初始化,我们一般在UserForm的init事件中进行。初始化控件时,可对控件的属性进行赋值。本次示例对checkbox,textbox,listbox,combobox进行了初始化操作,分别进行了:复选框选定初始化,文本框内容初始化,复合框内容初始化,列表框内容初始化。
赋值效果,及代码如下:
- 效果:
- 代码:
Dim MyArray(6, 3)
'文本框初始化:属性赋值
Private Sub testboxinit()
TextBox1.Text = "TextBox1"
TextBox1.Enabled = False
TextBox1.Locked = False
TextBox2.Text = "TextBox2"
End Sub
'复选框初始化:名称赋值,是否选定
Private Sub checkboxinit()
CheckBox1.Caption = "Enabled"
CheckBox1.Value = True
CheckBox2.Caption = "Locked"
CheckBox2.Value = False
End Sub
'复合框初始化:内容初始赋值
Private Sub comboxinit()
Dim j As Integer
For j = 1 To 9
ComboBox1.AddItem "Choice " & j
Next j
ComboBox1.AddItem "Chocoholic"
End Sub
'列表框初始化:内容初始赋值
Private Sub listboxinit()
Dim i As Single
'第一个列表框包含三个数据列
ListBox1.ColumnCount = 3
'第二个框包含六个数据列
ListBox2.ColumnCount = 6
'把整数值加载到 MyArray 的第一列
For i = 0 To 5
MyArray(i, 0) = i
Next i
'加载 MyArray 的列 2 和列 3
MyArray(0, 1) = "Zero"
MyArray(1, 1) = "One"
MyArray(2, 1) = "Two"
MyArray(3, 1) = "Three"
MyArray(4, 1) = "Four"
MyArray(5, 1) = "Five"
MyArray(0, 2) = "Zero"
MyArray(1, 2) = "Un ou Une"
MyArray(2, 2) = "Deux"
MyArray(3, 2) = "Trois"
MyArray(4, 2) = "Quatre"
MyArray(5, 2) = "Cinq"
'把数据加载到 ListBox1 和 ListBox2
ListBox1.List() = MyArray
ListBox2.Column() = MyArray
End Sub
Private Sub UserForm_Initialize()
Call testboxinit
Call comboxinit
Call listboxinit
Call checkboxinit
End Sub