2017-10-20 111 views
0

早些时候,我能够填充组合框取决于另一个组合框选择,然后我继续编写代码,然后我再回来测试它再次,它不再填充该列表,它与另一个列表一起使用,但其中一个不包含。所以它填充饮料,但不是主要的。我不确定发生了什么事情,这一切对我来说似乎都没有问题。当我尝试填充组合框时,它不填充

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 

回答

0

您正在清理时,选择“主”刚才添加到cmbItem的项目。

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

谢谢,我没有记时。我也试图让它清除组合框中的当前选定项目,我将其设置为当我在组合框中选择空白选择时清除其他组合框,但它不清除如果这有意义,那么选择了哪些文本? – Ollie4735

+0

@ Ollie4735设置'cmbItem.DropDownStyle = ComboBoxStyle.DropDownList' – LarsTech

+0

我发现另一种方法来做我所需要的是cmbItem.ResetText() – Ollie4735