[英]Programmatically Change the text of a Combox
我有一个带有组合框的用户表单,其中包含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集合中的值。 如果仅更改Text属性,则会发生以下情况:
将Text属性设置为null或空字符串(“”)会将SelectedIndex设置为-1。 将Text属性设置为Items集合中的值会将SelectedIndex设置为该项目的索引。 将Text属性设置为不在集合中的值将保持SelectedIndex不变。
对我来说,听起来您并不是真正地利用组合框来发挥全部潜力。 看起来您想拥有包含多个信息的项目,您正在尝试将其合并。 但是在这里您可以做什么
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
我觉得这是您真正需要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.