2017-10-20 154 views
0

我正在创建一个窗体,在这个窗体中我有两个组合框,我想将它们连接在一起,这意味着当我在第一个组合框(类别)中选择一个项目时,它将更改其他组合框中的项目(Item)。目前我没有背后的代码,因为我不确定如何开始。 Example如果图像以任何方式帮助您了解我需要发生的事情,那么它就在那里。我一直在不同的网站试图阅读如何做到这一点,但我完全失去了。如果有人能指出我正确的方向,那么将不胜感激![Example2我现在得到这个错误,每当我运行它,我不知道如何解决它,我不知道如何把这些括号'如果cmbCat。 SelectedItem()然后' 无论我似乎把什么都没有作品。如何更改一个ComboBox中的选项取决于另一个ComboBox?

公共类frmRestaurantOrd

Public Shared cmbCatDrinks As String = "Drinks" 

Public Shared cmbCatMain As String = "Main" 

Private Sub cmbCat_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbCat.SelectedIndexChanged 
    If cmbCat.SelectedItem() Then 
     cmbItem.Items.Add("Water") 
     cmbItem.Items.Add("Orange Juice") 
     cmbItem.Items.Add("Coca Cola") 
     cmbItem.Items.Add("Beer") 
    ElseIf cmbCat.SelectedItem("Main") Then 
     cmbItem.Items.Add("Piza 1") 
    Else cmbCat.SelectedItem.Equals("") 
     cmbItem.Items.Clear() 
    End If 
End Sub 

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

双击第一个组合框,它应该打开选择事件的代码窗口,在那里你将要清除第二个组合框,并根据第一个组合框中的选定项目来填充它。 –

+0

您能否列出几个将用于该组合的命令?这将是非常有用的,然后我可以尝试和错误,直到我弄明白。 – Ollie4735

+0

在设计器中选择分类组合框后,单击属性窗口中的闪电图标以显示组合框的事件。然后双击SelectedIndexChanged右边的ComboBox为该事件创建一个处理程序。将代码添加到处理程序以获取当前选择并将项添加到其他ComboBox。 –

回答

0

我会鼓励你从逻辑中分离出来的数据。我的意思是为每个类别选择一个单独的类,这样你将最终获得三个列表:

List(Of Category)“这个列表将包含的选择两个类别:饮料,MainDish

List(Of Drink)”这列表将包含饮料

List(Of MainDish)“这个列表中的选项将包括主菜

的选择

我会避免使用‘主’作为类的名称或列表

然后,根据用户在组合框cmbCat中所做的选择,将cmbItem DataSource属性设置为一个列表或另一个列表。

伪代码: cmbItem.DataSource = IIF(cmbCat.SelectedIndex == 0,饮料,MainDish)

相关问题