【问题标题】:How do I change the options in one ComboBox depending on another ComboBox?如何根据另一个 ComboBox 更改一个 ComboBox 中的选项?
【发布时间】:2017-10-20 20:28:08
【问题描述】:

我正在创建一个 windows 窗体,在这个窗体中,我有两个想要链接在一起的组合框,这意味着当我在第一个组合框(类别)中选择一个项目时,它将更改另一个组合中的项目框(项目)相应。目前我没有代码,因为我不确定如何开始。 图像不在表格中,如果它有助于您了解我需要发生的事情,那么它就在那里。我一直在不同的网站上试图阅读如何做到这一点,但我完全迷失了。如果有人能指出我正确的方向,那将不胜感激我现在每次运行它时都会收到这个错误,我不知道如何修复它,我不知道在这些括号中放什么'如果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

【问题讨论】:

  • 双击第一个组合框,它应该打开选择事件的代码窗口,在那里您需要清除第二个组合框并根据第一个中的选定项目填充它组合框
  • 您能列出几个用于此目的的命令吗?这真的很有帮助,然后我可以反复试验直到弄明白为止。
  • 在设计器中选择类别组合框后,单击属性窗口中的闪电图标以显示组合框的事件。然后双击 SelectedIndexChanged 右侧的 ComboBox 为该事件创建一个处理程序。将代码添加到处理程序以获取当前选择并将项目添加到另一个 ComboBox。
  • 从头开始。写代码。 您遇到困难并需要代码方面的帮助后发布一个问题。
  • 但是,如果我什至不知道要开始使用什么代码,我该怎么做呢?我也不能忽略这个,这是作业所需要的

标签: vb.net combobox


【解决方案1】:

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

List(Of Category) '此列表将包含两类选择:饮料、主菜

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    相关资源
    最近更新 更多