ComboBox控件是组合框控件。如果将 其 DropDownStyle 设置成 DropDownList 那么它就变成了下拉列表框。下拉列表的每一个项,一般包括两个部分:
text 和 data
text 就是我们看到的列表中的显示数据,data 就是包含在列表中,但是我们看不到的东东。
比如有一个列表是选择 省份 ,虽然我们看到的是 吉林 辽宁 ……
但是我们在程序中一般会读取他的data,也就是省份的代码。
但是我们不能直接 为 list 分别赋 text 和 data 的值。
为了解决这个问题我们需要定义一个类。这个类包括两个成员,分别 代表 text 和 data
类如下:
'
'' <summary>
' '' 此类定义 DropDownList 控件中的对象。
' '' </summary>
' '' <remarks></remarks>
Friend Class StringIntObject Class StringIntObject
Public s As String
Public i As Integer
Public Sub New()Sub New(ByVal sz As String, ByVal n As Integer)
s = sz
i = n
End Sub
Public Overrides Function ToString()Function ToString() As String
Return s
End Function
End Class
' '' 此类定义 DropDownList 控件中的对象。
' '' </summary>
' '' <remarks></remarks>
Friend Class StringIntObject Class StringIntObject
Public s As String
Public i As Integer
Public Sub New()Sub New(ByVal sz As String, ByVal n As Integer)
s = sz
i = n
End Sub
Public Overrides Function ToString()Function ToString() As String
Return s
End Function
End Class
请注意其重写了 ToString 方法,为什么要重写他呢?因为当我们将一个StringIntObject 对象 放到 列表框中后,他会把 ToString 的结果显示出来。我们便 重写 ToString 方法,让其返回我们想显示在界面上的信息。
向列表中添加一个项的方法如下:
'
lsbUserList 为一个 DropDownList 控件
Dim uItem As StringIntObject
uItem = New StringIntObject( " 吉林省 " , 1 )
lsbUserList.Items.Add(uItem)
uItem = New StringIntObject( " 辽宁省 " , 2 )
lsbUserList.Items.Add(uItem)
uItem = New StringIntObject( " 广东省 " , 3 )
lsbUserList.Items.Add(uItem)
Dim uItem As StringIntObject
uItem = New StringIntObject( " 吉林省 " , 1 )
lsbUserList.Items.Add(uItem)
uItem = New StringIntObject( " 辽宁省 " , 2 )
lsbUserList.Items.Add(uItem)
uItem = New StringIntObject( " 广东省 " , 3 )
lsbUserList.Items.Add(uItem)
获得用户选择项的方法:
Dim
i
As
Integer
i = CType (lsbUserList.SelectedItem, StringIntObject).i
dim s as integer
s = CType (lsbUserList.SelectedItem, StringIntObject).s
i = CType (lsbUserList.SelectedItem, StringIntObject).i
dim s as integer
s = CType (lsbUserList.SelectedItem, StringIntObject).s
本文作者:northsnow(塞北的雪)