引言
我們還是要回顧下我們要幹什麼?我們的目標是做一個具有查詢及顯示查詢結果的工具。上一章介紹了窗體及其屬性、事件、方法等,這個東西只能算是畫個查詢條件的框框,裏面的具體查詢條件怎麼填呢。
從我們見過的軟件分析,要寫一個查詢條件的輸入,必須有輸入框吧,有可能有選擇框吧,有可能有多選、單選框吧,你得有確定按鈕吧,本章主要描述這些東西及其初始化
一、綜述
控件其實也是窗體,是上篇中的窗體的兒子、繼承者。目前我們常用的有標籤(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