一、属性
1、Name(名称)
和窗口一样,Name属性是下拉列表类的实例化,我们可以用【名称.属性/方法】来使用下拉列表控件。
2、Style(样式)
可以选择下拉列表的样式。0 - 标签和下拉列表(不可输入和编辑),1 - 文本框和下拉列表(可以输入和编辑),3 - 文本框和列表框(设置该样式时需要把下拉列表的高度拉高,否则看不到列表框)。
3、Sorted(自动排序)
设置下拉列表是否按照字母自动排序。
4、Enabled(可用)、Visible(显示)
使能和显示列表框。
5、List(列表)
根据序号获取下拉列表子项数据。
6、ListIndex(列表序号)
当前下拉列表选中的序号。
7、ListCount(列表大小)
返回下拉列表的大小。
8、ItemData(子项附加数据)
存储子项的附加数据。
二、方法
1、AddItem(添加子项)、InsertItem(插入子项)
这两个都是向下拉列表里添加数据,AddItem是添加在末尾,InsertItem是根据序号插入数据。
2、Clear(清除)
删除下拉列表内的所有子项。
3、RemoveItem(删除子项)
删除下拉列表的一个指定的子项。
三、事件
1、CBN_SelChange事件
Sub Form1_Combo1_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd) '列表框中更改当前选择时
End Sub
选择子项后产生该事件。
四、实例
针对下拉列表的属性,做一个示例。包括标题添加子项,删除子项,清空子项等。窗体设计如下:
代码如下:
Sub Form1_Shown(hWndForm As hWnd,UserData As Integer) '窗口完全显示后。UserData 来自显示窗口最后1个参数。
For i As Long = 1 To 16
Combo1.AddItem "COM" & i '
Combo2.AddItem "子项" & i
Randomize '随机数种子
Combo2.ItemData(i -1) = int(Rnd * 100) - 1 '随机数
Combo3.AddItem int(Rnd * 100) - 1 '随机数
Next
Combo1.ListIndex = 0 '设置选中
Combo2.ListIndex = 0 '设置选中
End Sub
Sub Form1_Combo1_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd) '列表框中更改当前选择时
Printa "Combo1当前选中" & Combo1.Text
End Sub
Sub Form1_Combo2_CBN_SelChange(hWndForm As hWnd, hWndControl As hWnd) '列表框中更改当前选择时
Printa "Combo2当前选中" & Combo2.Text
End Sub
Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) '单击
Combo1.InsertItem 0, "COM0"
Combo2.AddItem "子项" & Combo2.ListCount + 1
End Sub
Sub Form1_Command2_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) '单击
Combo1.RemoveItem 0
Combo2.RemoveItem iif(Combo2.ListIndex = -1,0, Combo2.ListIndex)
End Sub
Sub Form1_Command4_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) '单击
For i As Long = 0 To Combo2.ListCount - 1
PrintA Combo2.ItemData(i)
Next
End Sub
Sub Form1_Command3_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd) '单击
Combo1.Clear
Combo2.Clear
Combo3.Clear
End Sub
运行效果:
完整代码:
https://github.com/rainheart311/VisualFreeBASIC/tree/master/ComboBox