2017-10-20 34 views
0

Plus tôt, j'étais capable de remplir une zone de liste déroulante en fonction de ce qu'une autre zone de liste déroulante a sélectionné, j'ai ensuite continué à écrire du code, et je reviens pour le tester à nouveau , et il ne remplit plus cette liste, il le fait avec une autre liste, mais pas l'une d'entre elles. Donc, il peuple la boisson, mais pas la principale. Je ne suis pas sûr de ce qui s'est passé pour que cela se produise, tout me semble bien.Lorsque j'essaie de remplir une zone de liste déroulante, il ne remplit pas

Public Shared cmbCatDrinks As String = "Drinks" 
Public Shared cmbCatMain As String = "Main" 
Public Shared cmbCatBlank As String = "" 
Public Shared cmbItemBlank As String = "" 

Private Sub frmRestaurantOrd_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    cmbCat.Items.Add(cmbCatBlank) 
    cmbCat.Items.Add(cmbCatDrinks) 
    cmbCat.Items.Add(cmbCatMain) 
End Sub 

Private Sub cmbCat_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbCat.SelectedIndexChanged 
    If cmbCat.SelectedItem = "Drinks" Then 
     cmbItem.Items.Add("Water") 
     cmbItem.Items.Add("Orange Juice") 
     cmbItem.Items.Add("Coca Cola") 
     cmbItem.Items.Add("Beer") 
     cmbSize.Items.Clear() 
    ElseIf cmbCat.SelectedItem = "Main" Then 
     cmbItem.Items.Add("Cheese and Tomato") 
     cmbItem.Items.Add("Ham and Pineapple") 
     cmbItem.Items.Add("Vegetarian") 
     cmbItem.Items.Add("Meat Feast") 
     cmbItem.Items.Add("Seafood") 
     cmbSize.Items.Add("Small") 
     cmbSize.Items.Add("Medium") 
     cmbSize.Items.Add("Large") 
     cmbItem.Items.Clear() 
    Else cmbCat.SelectedItem = cmbCatBlank 
     cmbItem.Items.Clear() 
    End If 
End Sub 

Répondre

0

Vous effacez les éléments que vous venez d'ajouter à cmbItem lorsque « Main » est sélectionné.

ElseIf cmbCat.SelectedItem = "Main" Then 
    cmbItem.Items.Add("Cheese and Tomato") 
    cmbItem.Items.Add("Ham and Pineapple") 
    cmbItem.Items.Add("Vegetarian") 
    cmbItem.Items.Add("Meat Feast") 
    cmbItem.Items.Add("Seafood") 
    cmbSize.Items.Add("Small") 
    cmbSize.Items.Add("Medium") 
    cmbSize.Items.Add("Large") 
    cmbItem.Items.Clear() ' <-- this is clearing all the items you just added. 
+0

Merci, je n'avais pas enregistré cela. J'essaye également de l'obtenir pour effacer l'élément sélectionné courant qui est dans la zone de liste déroulante, je l'ai placé de sorte que quand je sélectionne la sélection vide dans la zone de liste déroulante, il efface l'autre zone de liste déroulante, mais il n'efface pas le texte qui a été sélectionné si cela a du sens? – Ollie4735

+0

@ Ollie4735 Définir 'cmbItem.DropDownStyle = ComboBoxStyle.DropDownList' – LarsTech

+0

J'ai trouvé une autre façon de faire ce dont j'avais besoin cmbItem.ResetText() – Ollie4735