如何根据另一个ComboBox更改一个ComboBox中的选项?

时间:2017-10-20 20:28:08

标签: vb.net combobox

我正在创建一个Windows窗体,在这种形式中我有两个组合框,我想要链接在一起,这意味着当我在第一个组合框(类别)中选择一个项目时,它将更改另一个组合中的项目框(项目)相应。我目前没有任何代码,因为我不确定如何开始。Example图像不在形式上,如果它以任何方式帮助你理解我需要发生的事情然后在那里。我曾经在不同的网站上试图阅读如何做到这一点,但我完全迷失了。如果有人能指出我正确的方向,那么我将非常感激![Example2我现在每次运行时都会收到此错误,而且我不确定如何修复它,我不知道该放入什么这些括号'如果cmbCat.SelectedItem()那么' 无论我似乎什么都没有用。

公共类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

1 个答案:

答案 0 :(得分:0)

我建议您将数据与逻辑分开。我的意思是为每个选择类别创建一个单独的类,以便最终得到三个列表:

List(Of Category)'此列表将包含两类选项:Drink,MainDish

List(Of Drink)'此列表将包含饮品的选择

List(Of MainDish)'此列表将包含主菜的选择

我会避免使用“Main”作为类或List的名称

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

伪代码: cmbItem.DataSource = IIf(cmbCat.SelectedIndex == 0,Drinks,MainDish)

相关问题