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 ,前者返回放到列表里的对象本身,后者返回在列表的顺序号。
如果你用不着这些功能,只是想和网页版类似的实现显示值和返回值的功能,那么用绑定的方法也很方便
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"