Hallo zusammen
Ich habe ein kleines Programm geschrieben und komme nicht mehr weiter. Ich versuche schon seit einger Zeit, den Namen von max. 3 ausgewählten Checkboxen einzel auszugeben nach dem man einen Button(cmdBezahlen) gedrückt hat.
Mein Programm(ein Eisautomat):
Public Class frmEisautomat
Dim credit, betrag, AnzahlSorten As Single
Dim opt As RadioButton
Dim chk As CheckBox
Private Sub zahlen(sender As System.Object, e As System.EventArgs) Handles _
cmd5fr.Click, cmd2fr.Click, cmd1fr.Click, cmd50rp.Click, cmd20rp.Click, _
cmd10rp.Click
'Berechnet den Wert der eingelassenen Münzen
credit = credit + Val(sender.tag)
lblGezahlt.Text = Format(credit, "00.00")
reloadcashback()
End Sub
Private Sub chkSchoko_CheckedChanged(sender As System.Object, e As _
System.EventArgs) Handles chkAnanas.CheckedChanged, _
chkApfel.CheckedChanged, chkBanane.CheckedChanged, _
chkErdbeere.CheckedChanged, chkMandarine.CheckedChanged, _
chkMango.CheckedChanged, chkMelone.CheckedChanged, _
chkNuss.CheckedChanged, chkOrange.CheckedChanged, _
chkPistache.CheckedChanged, chkSchoko.CheckedChanged, _
chkStracciatella.CheckedChanged, chkVanille.CheckedChanged, _
chkZitrone.CheckedChanged
'Nimmt den Preis der aller Kugeln zusammen und rechnet ihn durch die
' Anzahl Kugeln
'danach gibt es den den Preis zurück und führt reloadcashback() aus
For Each Me.chk In Me.grpSorte.Controls
If sender.Checked = "True" Then
betrag = betrag + Val(sender.Tag / 14)
lblBetrag.Text = Format(betrag, "00.00")
AnzahlSorten = AnzahlSorten + Format(Math.Round(Val(sender.tag _
/ 14), 2), "00.00")
ElseIf sender.Checked = "False" Then
betrag = betrag - Val(sender.Tag / 14)
lblBetrag.Text = Format(betrag, "00.00")
AnzahlSorten = AnzahlSorten - Format(Math.Round(Val(sender.tag _
/ 14), 2), "00.00")
End If
Next
reloadcashback()
End Sub
Private Sub optCornet_CheckedChanged(sender As System.Object, e As _
System.EventArgs) Handles optCornet.CheckedChanged, _
optBecher.CheckedChanged
'Berechnet Preis + Den Preis des Behälters
'Kann nur eines Augewählt werden
For Each Me.opt In Me.grpBehälter.Controls
If sender.checked = "True" Then
betrag = betrag + Val(sender.Tag / 2)
lblBetrag.Text = Format(betrag, "00.00")
ElseIf sender.Checked = "False" Then
betrag = betrag - Val(sender.Tag / 2)
lblBetrag.Text = Format(betrag, "00.00")
End If
Next
reloadcashback()
End Sub
Private Sub chkSchokoStr_CheckedChanged(sender As System.Object, e As _
System.EventArgs) Handles chkSchokoStr.CheckedChanged, _
chkZucker.CheckedChanged, chkSahne.CheckedChanged
'Berechnet den Preis + die Angegeben Zusatz-Esswaren
'Es sind mehrere möglich
For Each Me.chk In Me.grpZusatz.Controls
If sender.checked = "True" Then
betrag = betrag + Val(sender.Tag / 3)
lblBetrag.Text = Format(betrag, "00.00")
ElseIf sender.Checked = "False" Then
betrag = betrag - Val(sender.Tag / 3)
lblBetrag.Text = Format(betrag, "00.00")
End If
Next
End Sub
Private Sub cmdZahlen_Click(sender As System.Object, e As System.EventArgs) _
Handles cmdZahlen.Click
If 0 < Format(Math.Round(Val(betrag - credit), 2), "00.00") Then
MsgBox("Bitte werfen Sie noch CHF " & Format(Math.Round(Val(betrag _
- credit), 2), "00.00") & " ein")
Else
auswerten()
End If
End Sub
Private Sub reloadcashback()
'rundet preis zuerst auf 2 stellen nach dem Komma
'(damit nur Preise erscheinen dessen Schweizer Franken existiert)
If lblGezahlt.Text >= lblBetrag.Text Then
lblZurück.Text = Format(Math.Round(Val(lblBetrag.Text) - Val( _
lblGezahlt.Text), 2), "00.00")
Else
lblZurück.Text = "00.00"
End If
'Berechnet das Rückgeld und ändert den Text zu "Guthaben"
'wenn das Rückgeld negativ ist
If lblZurück.Text >= 0 Then
lblText.Text = "Zurück in CHF"
Else
lblText.Text = "Guthaben in CHF"
lblZurück.Text = Format(Val(lblZurück.Text * -1), "00.00")
End If
End Sub
Private Sub auswerten()
If AnzahlSorten > 3 Then
MsgBox("Bitte wählen sie nicht mehr als 3 Eissorten aus")
End If
End Sub
Private Sub tmrKugel1_Tick(sender As System.Object, e As System.EventArgs) _
Handles tmrKugel1.Tick
picKugel1.Top = picKugel1.Top - 1
End Sub
End ClassDanke für eure Hilfe |