VB.NET下面ComboBox控件如何在一个Item中添加两个项呢?

时间:2022-10-05 13:59:29
如题:VB.NET下面ComboBox控件如何在一个Item中添加两个项呢?

也就是说,我这个下拉框显示的是:{"123","456","789"}而对应数据库中的值是{A,B,C}这样如何处理?
或者说如WEB中的<select name="test"><option value="A">123</option></select>这个控件,一个显示对应一个值,怎么完成呢?
如下:
初始化显示:
        cmbScale_Type.Items.Clear()
        cmbScale_Type.Items.Add("CAS PD-1")
        cmbScale_Type.Items.Add("Magellan SL")
        cmbScale_Type.Items.Add("NCR 7875")
        cmbScale_Type.Items.Add("Metrologic MS2020")
        cmbScale_Type.Items.Add("Weightronics NCI - 6720")
        cmbScale_Type.SelectedIndex = 0
而我要的值是:{C,M,N,P,T}

8 个解决方案

#1


你可以声明一个结构体,包括有两个或更多的字段或属性,或类也行。比如:

public struct item
{
public string value;
public string Text;
public item(string v, string t)
{
this.value = v;
this.Text = t;
}
public override string ToString()
{
return this.Text;
}
}

然后使用comboBox.Items.Add(new item("1", "壹"))这样的语句添加。如下获取:
item _item = comboBox.Items[index] as item;
if (_item!=null)
{
    Console.WriteLine(_item.Value);
    Console.WriteLine(_item.Text);
}

#2



Public Class item
    Public text As String
    Public value As String
    ' Methods
    Public Sub New(ByVal v As String, ByVal t As String)
        Me.value = v
        Me.text = t
    End Sub

    Public Overrides Function ToString() As String
        Return Me.text
    End Function

End Class


   Dim _item As item = TryCast(combobox.Items.Item(combobox.SelectedIndex),item)
    If (Not _item Is Nothing) Then
        Console.WriteLine(_item.value)
        Console.WriteLine(_item.text)
    End If

#3


添加的时候这样用:

Me.comboBox.Items.Add(new   item("1",   "壹"))

#4



cboCtrl.Items.Add("1",rstTemp.Item(1))
cboCtrl.Items.Add("2",rstTemp.Item(2))

#5


晕了,太麻烦了,我想用二维数组完成,可以在VB.NET下面二维数组赋值怎么做?
如C:
C语言中a[i][j]={{....},{...},{...}}的形式,在VB中应该怎么写?

#6


四楼的好象不行,我的Items.Add()里面只能放一个参数呢!!!

#7


因为combobox.Items是一个Object类型的集合,所以你可以放入任何类型的对象在里面,文本显示的是对象的ToString的结果。当然你可以用其它的方法。

声明VB的二维数组可以如下:

Dim weights(,) As Object = New Object(,) {{"CAS   PD-1", 1}, {"Magellan   SL", 2}, {"NCR   7875", 3}, {"Metrologic   MS2020", 4}{"Weightronics   NCI   -   6720", 5}}

#8


对不起,我刚才写错了
cboCtrl.Items.Add(new item("1",rstTemp.Item(1)))
cboCtrl.Items.Add(new item("2",rstTemp.Item(2)))

#1


你可以声明一个结构体,包括有两个或更多的字段或属性,或类也行。比如:

public struct item
{
public string value;
public string Text;
public item(string v, string t)
{
this.value = v;
this.Text = t;
}
public override string ToString()
{
return this.Text;
}
}

然后使用comboBox.Items.Add(new item("1", "壹"))这样的语句添加。如下获取:
item _item = comboBox.Items[index] as item;
if (_item!=null)
{
    Console.WriteLine(_item.Value);
    Console.WriteLine(_item.Text);
}

#2



Public Class item
    Public text As String
    Public value As String
    ' Methods
    Public Sub New(ByVal v As String, ByVal t As String)
        Me.value = v
        Me.text = t
    End Sub

    Public Overrides Function ToString() As String
        Return Me.text
    End Function

End Class


   Dim _item As item = TryCast(combobox.Items.Item(combobox.SelectedIndex),item)
    If (Not _item Is Nothing) Then
        Console.WriteLine(_item.value)
        Console.WriteLine(_item.text)
    End If

#3


添加的时候这样用:

Me.comboBox.Items.Add(new   item("1",   "壹"))

#4



cboCtrl.Items.Add("1",rstTemp.Item(1))
cboCtrl.Items.Add("2",rstTemp.Item(2))

#5


晕了,太麻烦了,我想用二维数组完成,可以在VB.NET下面二维数组赋值怎么做?
如C:
C语言中a[i][j]={{....},{...},{...}}的形式,在VB中应该怎么写?

#6


四楼的好象不行,我的Items.Add()里面只能放一个参数呢!!!

#7


因为combobox.Items是一个Object类型的集合,所以你可以放入任何类型的对象在里面,文本显示的是对象的ToString的结果。当然你可以用其它的方法。

声明VB的二维数组可以如下:

Dim weights(,) As Object = New Object(,) {{"CAS   PD-1", 1}, {"Magellan   SL", 2}, {"NCR   7875", 3}, {"Metrologic   MS2020", 4}{"Weightronics   NCI   -   6720", 5}}

#8


对不起,我刚才写错了
cboCtrl.Items.Add(new item("1",rstTemp.Item(1)))
cboCtrl.Items.Add(new item("2",rstTemp.Item(2)))