以编程方式更改组合框的文本



我有一个带有组合框的用户表单,其中包含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保持不变。什么好主意吗?提前感谢

对我来说,听起来您并没有真正充分利用组合框。看起来你想要包含多个信息的项目,你正在尝试将它们组合起来。但是这里你可以做的是

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

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

您必须更改组合框的Items集合中的值。如果你只改变Text属性,结果如下:

将Text属性设置为null或空字符串(")将设置SelectedIndex为-1。将Text属性设置为Items集合中的值,将SelectedIndex设置为该项的索引。将Text属性设置为不在集合中的值将使SelectedIndex保持不变。

相关内容

  • 没有找到相关文章