VisualFreeBASIC基础——列表框的使用

一、属性

1、Name(名称)

    和窗口一样,Name属性是列表框类的实例化,我们可以用【名称.属性/方法】来使用列表框控件。

2、Sorted(自动排序)

    设置列表框是否按照字母自动排序。

3、MultiColumn(多列)

    设置列表框是否有多列。

4、Enabled(可用)、Visible(显示)

    使能和显示列表框。

5、List(列表)

    根据序号获取列表子项数据。

6、ListIndex(列表序号)

    当前列表选中的序号。

7、ListCount(列表大小)

    返回列表的大小。

8、ItemData(子项附加数据)

    存储子项的附加数据。

二、方法

1、AddItem(添加子项)、InsertItem(插入子项)

    这两个都是向列表框里添加数据,AddItem是添加在末尾,InsertItem是根据序号插入数据。

2、Clear(清除)

    删除列表框内的所有子项。

3、RemoveItem(删除子项)

    删除列表框的一个指定的子项。

三、事件

1、LBN_SelChange事件

Sub Form1_List1_LBN_SelChange(hWndForm As hWnd, hWndControl As hWnd)  '选择了列表

End Sub

    选择列表项后会产生该事件。

2、LBN_DblClk事件

Sub Form1_List1_LBN_DblClk(hWndForm As hWnd, hWndControl As hWnd)  '双击

End Sub

    双击列表事件。

四、实例

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

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

代码如下:

Sub Form1_Shown(hWndForm As hWnd,UserData As Integer)  '窗口完全显示后。UserData 来自显示窗口最后1个参数。
    Label1.Caption = "双击或点按键将列表1的数据添加到列表2,并删除列表1中的数据" & vbCrLf & _
    "或将列表2的数据添加到列表1,并删除列表2中的数据"
    
    List1.AddItem "苹果"
    List1.ItemData(0) = 0
    List1.AddItem "橘子"
    List1.ItemData(1) = 1
    List1.AddItem "草莓"
    List1.ItemData(2) = 2
    List1.AddItem "樱桃"
    List1.ItemData(3) = 3
    List1.AddItem "石头"
    List1.ItemData(4) = 4
    List1.AddItem "芒果"
    List1.ItemData(5) = 5
    List1.AddItem "牛奶"
    List1.ItemData(6) = 6
    List1.AddItem "白菜"
    List1.ItemData(7) = 7
    List1.AddItem "萝卜"
    List1.ItemData(8) = 8
    List1.ForeColor = &H0000FF     
End Sub

Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    List2.AddItem List1.List(List1.ListIndex)
    List1.RemoveItem List1.ListIndex 
End Sub

Sub Form1_Command2_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    List1.AddItem List2.List(List2.ListIndex)
    List2.RemoveItem List2.ListIndex     
End Sub

Sub Form1_List2_LBN_DblClk(hWndForm As hWnd, hWndControl As hWnd)  '双击
    Command2.Click
End Sub

Sub Form1_List1_LBN_DblClk(hWndForm As hWnd, hWndControl As hWnd)  '双击
    Command1.Click
End Sub

Sub Form1_Command3_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    List1.AddItem "西瓜"
End Sub

Sub Form1_Command4_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Dim item As Long = iif(List2.ListIndex = -1,0,List2.ListIndex)
    List1.RemoveItem item 
End Sub

Sub Form1_Command5_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    List1.Clear
End Sub

Sub Form1_Command6_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    For i As Long = 0 To List1.ListCount - 1
        PrintA List1.ItemData(i)  
    Next i  
End Sub

运行效果:

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

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

完整例子:

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

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