如何动态更改组合框显示成员

Posted

技术标签:

【中文标题】如何动态更改组合框显示成员【英文标题】:How to dinamically change Combo box display member 【发布时间】:2015-11-03 13:22:55 【问题描述】:

我的 VB 程序中有一个链接到组合框的数据库。从组合框中选择名称时,它将自动用相关信息填充其他文本框。我现在添加了一个单选按钮,以允许在组合框中切换名称和地址,从而允许用户根据自己的喜好进行搜索。

有人知道我可以在我的单选按钮private sub 中输入的一小行代码,它会在选中时更改组合框的显示成员吗?

谢谢

【问题讨论】:

你尝试了吗? 以与最初设置相同的方式更改它。或者显示代码你是如何设置的 目前我在不使用代码的情况下设置了组合框和文本框.我已经制作了单选按钮,并且我知道数据库和显示成员的名称只是想知道我必须在单选按钮私有子按钮内的 If 语句中放入什么。 【参考方案1】:

以下是如何切换显示成员的示例。它不一定具有设计意义,但它展示了如何做到这一点。这是工作代码顺便说一句

Public Class Vendor
    Public Property Id As Integer
    Public Property Name As String
    Public Property Address As String    
End Class
 . . . . . 
' Form constructor
Dim listOfVendors As New List(Of Vendor)()
listOfVendors.Add(New Vendor() With .Address = "A1", .Id = 1, .Name = "Name1")
listOfVendors.Add(New Vendor() With .Address = "A2", .Id = 2, .Name = "Name2")
listOfVendors.Add(New Vendor() With .Address = "A3", .Id = 3, .Name = "Name3")

cboVendors.ValueMember = "Id" 
cboVendors.DisplayMember = "Name"
cboVendors.DataSource = listOfVendors 

. . . . .
' Assume SearchOptionChanged is handler for your radio buttons of the same group
Pivate Sub SearchOptionChanged(sender As Object, e As EventArgs) Handles rbSearchbyName.CheckedChanged, rbSearchbyAddress.CheckedChanged

    Dim rb As RadioButton = CType(sender, RadioButton)
    If rb.Name = "rbSearchbyName" AndAlso rb.Checked Then 
        cboVendors.DisplayMember = "Name"
    Else If rb.Name = "rbSearchbyAddress" AndAlso rb.Checked Then 
        cboVendors.DisplayMember = "Address"
    Else
        ' put your logic here
    End If

End Sub

' Getting item
Private Sub FillForm()
    ' Cool thing about this style is, now you can fill text boxes with data
    Dim v As Vendor = TryCast(cboVendors.SelectedItem, Vendor)
    If v Is Nothing Then
        MessageBox.Show("No Vendor selected")
    Else
        txtName.Text = v.Name
        txtAddress.Text = v.Address
        lblId.Text = v.Id
    End If

End Sub

这显示了如何做到这一点。你需要弄清楚你的逻辑。

【讨论】:

以上是关于如何动态更改组合框显示成员的主要内容,如果未能解决你的问题,请参考以下文章

ExtJS 动态更改组合框项的值

如何动态更改 C# 组合框或文本框中的自动完成条目?

如何在剑道组合框中更改/设置值

如何更改组合框选定值的显示顺序

如何在组合框中就地更改显示字段

如何更改代码以使组合框显示 displayField 值列表