我正在为大学作业创建一个简单的餐厅菜单,用户可以选择他们想要的项目,然后计算最终价格并在标签中显示。
我把它设置得非常简单,每个食品都在表格上的标签上,旁边的按钮显示“添加”。单击它然后将其添加到列表框。用户可以选择添加每个项目的倍数,也可以删除这些项目,所有这些都是我已经整理好的。
我想要发生的是当我点击“计算”按钮时,我想在列表框中搜索每个项目,计算其中的数量,并为每个项目添加相关值。例如,如果我将3个Garlic Bread添加到列表框中,我希望计算按钮在列表框中搜索大蒜面包,并且每次出现时添加1.20。每个项目都需要这个。
如果有人能提供帮助,那真的会有所帮助:D
如果有帮助,我正在使用一种名为'Form1'的形式,我的列表框叫做'Listbox1',我也有20种食物。
前几天我确实问了这个问题,当我要求解释如何将其翻译成我的项目时,这些信息很有用,但根本没有任何意义。我知道这可能很难,但请理解我是VB的新手,所以如果你能解释像我这样的一切,我将不胜感激:D
干杯
答案 0 :(得分:0)
为项目创建一个字典可能最容易,项目名称为关键,价格为值。将此字典设为全局变量,并在Form.Load事件中填充它:
Dim MenuItems As Dictionary(Of String, Decimal)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
MenuItems = New Dictionary(Of String, Decimal)
MenuItems.Add("Garlic Bread", 12.23)
MenuItems.Add("Roast Beef", 2.23)
(...)
End Sub
在您的计算方法中,您将遍历列表并在字典中查找价格:
Dim TotalPrice As Decimal = 0
For Each item As Object In Listbox1.Items
If MenuItems.ContainsKey(item.ToString) Then TotalPrice += MenuItems(item.ToString)
Next
Return TotalPrice
如果您这样做,您甚至可以从字典中动态创建菜单(在表单加载时将字典中每个项目的标签和按钮添加到表单中)。