2017-02-07 3 views
-2

チェックボックスに割り当てられた値を合計してテキストボックスに表示する方法を理解しようとしています。これはボーナス問題であり、クラスでは初心者ではカバーされていないため、複数の場所で迷子になる可能性があります。前もって感謝します。チェックボックスを使用してVBの "If"ステートメントを設定する際の問題

Public Class frmBooking 
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged 

    End Sub 

    Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click 
     Dim baseCruiseCosts, prepaidGratuities, salesTax, grandTotal As Single 
     Dim travelOptions As Double 
     baseCruiseCosts = txtCosts.Text 
     travelOptions = txtTravelOps.Text 
     prepaidGratuities = txtGratuities.Text 
     salesTax = txtTax.Text 
     grandTotal = baseCruiseCosts + travelOptions + prepaidGratuities + salesTax 
     txtGrandTotal.Text = FormatCurrency(grandTotal) 
    End Sub 

    Private Sub frmBooking_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     lblDate.Text = Format(Now, "MM/dd/yyyy") 
    End Sub 

    Private Sub chkInsurance_CheckedChanged(sender As Object, e As EventArgs) Handles chkInsurance.CheckedChanged 
     Dim sum, travelOptions As Double 
     If chkInsurance.Checked Then 
      sum += 90 
     End If 
     If chkInsurance.Checked = False Then 
      txtTravelOps.Text = travelOptions 
     End If 
    End Sub 

    Private Sub chkTickets_CheckedChanged(sender As Object, e As EventArgs) Handles chkTickets.CheckedChanged 
     Dim sum, travelOptions As Double 
     If chkTickets.Checked Then 
      sum += 30 
     End If 
     If chkTickets.Checked = False Then 
      txtTravelOps.Text = travelOptions 
     End If 
    End Sub 

    Private Sub chkBottomless_CheckedChanged(sender As Object, e As EventArgs) Handles chkBottomless.CheckedChanged 
     Dim sum, travelOptions As Double 
     If chkBottomless.Checked Then 
      sum += 85 
     End If 
     If chkBottomless.Checked = False Then 
      txtTravelOps.Text = travelOptions 
     End If 
    End Sub 

    Private Sub chkPreReg_CheckedChanged(sender As Object, e As EventArgs) Handles chkPreReg.CheckedChanged 
     Dim sum, travelOptions As Double 
     If chkPreReg.Checked Then 
      sum += 19.95 
     End If 
     If chkPreReg.Checked = False Then 
      txtTravelOps.Text = travelOptions 
     End If 
    End Sub 
End Class 
+0

お金を含む計算を行う場合は、常に「Double」または「Single」ではなく「Decimal」を使用してください。 –

+0

申し訳ありませんが、私はこの質問に投票しました。あなたの質問から、またはコードから、あなたがここで何をしようとしているのかは、実際には分かりません。あなたが計算ボタンを持っているなら、実際にはチェックボックスのチェッカーは必要ありませんが、スコープ外の変数を参照するので、2番目のスタンザが何をすべきかわかりません。 –

+0

[MCVE] – Bugs

答えて

0

checkChanged内に合計変数を作成したため、checkChanged内でのみ使用できます。あなたは(私はちょうどメイン/グローバルそれを呼び出す私はそれの言葉を知りません。)フォームのロード上記のグローバル変数や主変数を作成する必要があります

をあなたはこのような何かを行うことができます:

4を作成します。変数: 1. grandTotal、sumofTicket、sumofInsurance、sumofBottomless、sumofPreReg。

チェックボックスをオンにしたときに、指定した変数に値を転送し、btncomputeにヒットしたときにすべての変数をgrandTotal変数に追加します。また、チェックボックスの条件内の変数= falseには値がありません。