VisualFreeBASIC基础——下拉列表的使用

一、属性

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

    选择子项后产生该事件。

四、实例

    针对下拉列表的属性,做一个示例。包括标题添加子项,删除子项,清空子项等。窗体设计如下:

VisualFreeBASIC基础——下拉列表的使用_第1张图片

代码如下:

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

运行效果:

VisualFreeBASIC基础——下拉列表的使用_第2张图片

VisualFreeBASIC基础——下拉列表的使用_第3张图片

完整代码:

https://github.com/rainheart311/VisualFreeBASIC/tree/master/ComboBox

 

 

你可能感兴趣的:(FreeBASIC实例工程,freebasic)