Public Class Form1
Dim loaded As Boolean = False
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As New DataSet
ds.Tables.Add("Beverage")
ds.Tables("Beverage").Columns.Add("item")
ds.Tables("Beverage").Columns.Add("price", GetType(Decimal))
For x As Integer = 1 To 5
Dim dr As DataRow = ds.Tables("Beverage").NewRow
dr.ItemArray = New Object() {"drink" & x.ToString, x}
ds.Tables("Beverage").Rows.Add(dr)
Next
Label1.Text = "Beverage"
ComboBox1.DataSource = ds.Tables("Beverage")
ComboBox1.DisplayMember = "item"
ComboBox1.ValueMember = "price"
ds.Tables.Add("Appetizer")
ds.Tables("Appetizer").Columns.Add("item")
ds.Tables("Appetizer").Columns.Add("price", GetType(Decimal))
For x As Integer = 1 To 5
Dim dr As DataRow = ds.Tables("Appetizer").NewRow
dr.ItemArray = New Object() {"starter" & x.ToString, x}
ds.Tables("Appetizer").Rows.Add(dr)
Next
Label2.Text = "Appetizer"
ComboBox2.DataSource = ds.Tables("Appetizer")
ComboBox2.DisplayMember = "item"
ComboBox2.ValueMember = "price"
ds.Tables.Add("Main_Course")
ds.Tables("Main_Course").Columns.Add("item")
ds.Tables("Main_Course").Columns.Add("price", GetType(Decimal))
For x As Integer = 1 To 5
Dim dr As DataRow = ds.Tables("Main_Course").NewRow
dr.ItemArray = New Object() {"meal" & x.ToString, x}
ds.Tables("Main_Course").Rows.Add(dr)
Next
Label3.Text = "Main_Course"
ComboBox3.DataSource = ds.Tables("Main_Course")
ComboBox3.DisplayMember = "item"
ComboBox3.ValueMember = "price"
ds.Tables.Add("Dessert")
ds.Tables("Dessert").Columns.Add("item")
ds.Tables("Dessert").Columns.Add("price", GetType(Decimal))
For x As Integer = 1 To 5
Dim dr As DataRow = ds.Tables("Dessert").NewRow
dr.ItemArray = New Object() {"dessert" & x.ToString, x}
ds.Tables("Dessert").Rows.Add(dr)
Next
Label4.Text = "Dessert"
ComboBox4.DataSource = ds.Tables("Dessert")
ComboBox4.DisplayMember = "item"
ComboBox4.ValueMember = "price"
loaded = True
ComboBox1.SelectedIndex += 1
ComboBox1.SelectedIndex = 0
End Sub
Private Sub ComboBoxes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged, ComboBox3.SelectedIndexChanged, ComboBox4.SelectedIndexChanged
If Not loaded Then Return
Dim total = (From cb In Me.Controls.OfType(Of ComboBox)() _
Let value = CDec(DirectCast(cb, ComboBox).SelectedValue) _
Select value).Sum
Label5.Text = "total = " & total.ToString("c2")
End Sub
End Class