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
请注意其重写了 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 i As
Integer
i = CType
(lsbUserList.SelectedItem, StringIntObject).i
dim s
as
integer
s = CType
(lsbUserList.SelectedItem, StringIntObject).s
本文作者:northsnow(塞北的雪)