首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net中的组合框combobox怎么手动设置其显示值与返回值

2012-04-06 
vb.net中的组合框combobox如何手动设置其显示值与返回值?如:显示值:高一、高二、高三返回值:2011、2010、2009

vb.net中的组合框combobox如何手动设置其显示值与返回值?
如:
显示值:高一、高二、高三
返回值:2011、2010、2009
用户选择高一,返回2011
用户选择高二,返回2010
用户选择高三,返回2009
要手动赋值?

另外,还有对于组合框combobox里面的属性,如:ValueMember、DisplayMember、SelectedText、SelectedValue、SelectedItem、SelectedIndex等属性无法透彻深入的了解,不知有哪位高手能用实例讲解???

[解决办法]
dim dtSource as new datatable()
dtSource.Columns.add("key")
dtSource.Columns.add("value")
dtSource.loaddatarow(new object(){"2011","高一"},true)
dtSource.loaddatarow(new object(){"2010","高二"},true)
dtSource.loaddatarow(new object(){"2009","高三"},true)

combobox1.datasource=dtSource ‘绑定数据源
combobox1.ValueMember="key" 'ValueMember=画面显示栏位对应的key值
combobox1.DisplayMember="value"'DisplayMember=画面显示的栏位

combobox1.selectedValue就是对应的key值(2011,2010,2009),画面显示的是value值(高一,高二,高三)
[解决办法]
这个和网页上的下拉框设计理念不同,网页的下拉框就是显示值和返回值两个字符串的列表。

但桌面版的功能要高级的多,他可以放任何对象,显示的就是该对象ToString后的值。如果你要得到返回的值(这儿说值都不太正确,是返回的对象),那么就应该用 ComboBox1.SelectedItem 或者ComboBox1.SelectedIndex ,前者返回放到列表里的对象本身,后者返回在列表的顺序号。

如果你用不着这些功能,只是想和网页版类似的实现显示值和返回值的功能,那么用绑定的方法也很方便

VB.NET code
        Dim list As New List(Of Tuple(Of Integer, String))        list.Add(New Tuple(Of Integer, String)(2011, "高一"))        list.Add(New Tuple(Of Integer, String)(2010, "高二"))        list.Add(New Tuple(Of Integer, String)(2009, "高三"))        ComboBox1.DataSource = list        ComboBox1.DisplayMember = "Item2"        ComboBox1.ValueMember = "Item1"
[解决办法]
Dim dt = New DataTable()
Dim dr As DataRow
Dim arr(2, 1) As String
arr(0, 0) = "高一"
arr(0, 1) = "2011"
arr(1, 0) = "高二"
arr(1, 1) = "2010"
arr(2, 0) = "高三"
arr(2, 1) = "2009"

dt.Columns.Add("t")
dt.Columns.Add("v")
For i As Integer = 0 To UBound(arr)
dr = dt.NewRow()
dr("t") = arr(i, 0)
dr("v") = arr(i, 1)
dt.Rows.Add(dr)
Next
ComboBox1.DataSource = dt
ComboBox1.ValueMember = "v"
ComboBox1.DisplayMember = "t"

热点排行