まず、これは私が取り組んでいた宿題でしたが、このように機能させることができませんでした。そのため、Ifステートメントを使用して割り当てを完了する必要がありました。目的は、基本的に、ユーザーが注文を送信するために入力できるフォームを作成することでした。3つのチェックボックスがあります(1つはハンバーガー用、1つはフライドポテト用、もう1つは飲み物用)。ボックスの1つをチェックすると、必要な選択を行うためのラジオボタンを含むグループボックスが表示されます。
チェックボックスがオンになっているかどうかに基づいて、selectステートメントを使用してみたかったのです。次に、ラジオボタンごとに異なるケースを使用します。ただし、プログラムを実行して、指定した1つのボタンをクリックすると、dblCost変数に使用可能な最初のケースが入力されます。以下は私のコードです。私は自分が何を間違っていたのか、あるいはこれがこの問題に取り組むための実行可能な方法ではないのかどうかを本当に理解したいと思っています。以下は私が使用したかったコードです:
Public Class frmRestaurantOrder
Private Sub CheckedChanged(sender As Object, e As EventArgs) Handles cbxBurgers.CheckedChanged, cbxFries.CheckedChanged, cbxDrinks.CheckedChanged
If (cbxBurgers.Checked) Then
gbxBurgers.Visible = True
Else
gbxBurgers.Visible = False
End If
If (cbxFries.Checked) Then
gbxFries.Visible = True
Else
gbxFries.Visible = False
End If
If (cbxDrinks.Checked) Then
gbxDrinks.Visible = True
Else
gbxDrinks.Visible = False
End If
End Sub
Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click
Dim dblCost As Double = 0
Select Case gbxBurgers.Visible = True
Case rbtRegularBurger.Checked
dblCost += 4.19
Case rbtCheeseBurger.Checked
dblCost += 4.79
Case rbtBaconBurger.Checked
dblCost += 4.79
Case rbtBaconCheeseBurger.Checked
dblCost += 5.39
Case Else
dblCost += 0
End Select
Select Case cbxFries.Checked = True
Case rbtSmallFries.Checked
dblCost += 1.29
Case rbtLargeFries.Checked
dblCost += 1.59
Case Else
dblCost += 0
End Select
Select Case cbxDrinks.Checked = True
Case rbtSoda.Checked
dblCost += 1.69
Case rbtWater.Checked
dblCost += 1.49
Case Else
dblCost += 0
End Select
txtCost.Text = FormatCurrency(dblCost)
End Sub
エンドクラス