以编程方式更改Combox

时间:2015-08-31 16:03:06

标签: 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, 2)
End Sub

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

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

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

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