2017-10-20 45 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)

相關問題