2015-11-03 3 views
1

У меня есть база данных в моей программе VB, связанной с полем со списком. При выборе имени из поля со списком он автоматически заполняет другие текстовые поля соответствующей информацией. Теперь я добавляю переключатель, чтобы разрешить переключение имени & в поле со списком, позволяющее пользователю искать в зависимости от их предпочтений.Как динамически менять элемент отображения панели Combo

Кто-нибудь знает короткую строку кода, которую я мог бы поместить в свою радиокнопку private sub, которая изменила бы элемент отображения в поле со списком при его выборе?

Благодаря

+3

Вы что-то пробовали? – Caveman

+0

Измените его так же, как он был установлен в первую очередь. Или покажите код, как вы его установили. – Fabio

+0

на данный момент у меня есть поле со списком и текстовые поля без использования кода. Я просто перетащил свою базу данных доступа в VB, затем просто перетащил ее из моей ссылки в мое приложение, которое затем создало свои собственные текстовые поля , Я сделал свой переключатель, и я знаю, что называется базой данных и членами дисплея, просто задавалось вопросом, что мне нужно включить в мое заявление If внутри частной кнопки радиокнопки. –

ответ

0

Ниже приведен пример как переключить элемент дисплея. Это не обязательно имеет смысл дизайна, но показывает, как это сделать. Этот рабочий код BTW

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 

Это показывает, как это сделать. Вам нужно выработать свою логику.

Смежные вопросы