Vb.net 以编程方式更改Combox的文本

Vb.net 以编程方式更改Combox的文本,vb.net,combobox,event-handling,Vb.net,Combobox,Event Handling,我有一个带有组合框的用户表单,其中有5个未绑定的数据项。每个项目的值采用以下格式:“##解释”,2位数字代码和代码解释。在用户选择一个项目后,我希望只显示2位数字代码。我试过以下方法 Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged ComboBox1.Text = Mid(ComboBox1.Text, 1

我有一个带有组合框的用户表单,其中有5个未绑定的数据项。每个项目的值采用以下格式:“##解释”,2位数字代码和代码解释。在用户选择一个项目后,我希望只显示2位数字代码。我试过以下方法

Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    ComboBox1.Text = Mid(ComboBox1.Text, 1, 2)
End Sub

但是,在选择项目后,分配似乎无法正常工作,因为
ComboBox1.Text
保持不变。有什么想法吗?提前感谢

您必须更改组合框项目集合中的值。如果只更改文本属性,则会发生以下情况:


您必须更改组合框的Items集合中的值。如果只更改文本属性,则会发生以下情况:


对我来说,听起来您并没有真正充分利用组合框的潜力。看起来您想要包含多条信息的项目,您正在尝试合并这些信息。但是这里你可以做些什么来代替呢

Private Class ComboItem

    Public Property Code As Integer

    Public Property Description As String

    Public ReadOnly Property Display As String
        Get 
            Return Code & " " & Description 
        End Get
    End Property

End Class


Dim lst As New List(Of ComboItem)()
lst.Add(New ComboItem()....) ' add your items

cboList.DataSource = lst
cboList.DisplayMember = "Display"
cboList.ValueMember = "Code"
在这里,最好的部分开始-一旦用户选择一个项目,通过键入或单击,您可以这样做

Dim item As ComboItem = DirectCast(cboList.SelectedItem, ComboItem)
txtCode.Text = item.Code
txtDescription.Text = item.Description

我觉得,这才是你真正需要的。

对我来说,听起来你并没有真正充分利用组合框的潜力。看起来您想要包含多条信息的项目,您正在尝试合并这些信息。但是这里你可以做些什么来代替呢

Private Class ComboItem

    Public Property Code As Integer

    Public Property Description As String

    Public ReadOnly Property Display As String
        Get 
            Return Code & " " & Description 
        End Get
    End Property

End Class


Dim lst As New List(Of ComboItem)()
lst.Add(New ComboItem()....) ' add your items

cboList.DataSource = lst
cboList.DisplayMember = "Display"
cboList.ValueMember = "Code"
在这里,最好的部分开始-一旦用户选择一个项目,通过键入或单击,您可以这样做

Dim item As ComboItem = DirectCast(cboList.SelectedItem, ComboItem)
txtCode.Text = item.Code
txtDescription.Text = item.Description
我觉得,这才是你真正需要的