PDA

Vollständige Version anzeigen : Brauche dringend HILFE


Bond786
09.03.2007, 22:37
Hallo Leut, brauche dringend HILFE!!

Mein Code sieht so aus:

Private Sub Kaf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnKaf.Click
If txtAnzahlKaf.Text = "" Then
txtAnzahlKaf.Text = 1
txtPreisKaf.Text = Format(CType(btnKaf.Tag, Double), "0.00 €")
Else
txtAnzahlKaf.Text = txtAnzahlKaf.Text + 1
txtPreisKaf.Text = Format(CType(btnKaf.Tag, Double) * CType(txtAnzahlKaf.Text, Integer), "0.00 €")
End If
End Sub

Private Sub Mineralw_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMineralw.Click
If txtAnzahlMineral.Text = "" Then
txtAnzahlMineral.Text = 1
txtPreisMineral.Text = Format(CType(btnMineralw.Tag, Double), "0.00 €")
Else
txtAnzahlMineral.Text = txtAnzahlMineral.Text + 1
txtPreisMineral.Text = Format(CType(btnMineralw.Tag, Double) * CType(txtAnzahlMineral.Text, Integer), "0.00 €")
End If
End Sub

Private Sub btnCap_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCap.Click
If txtAnzahlCap.Text = "" Then
txtAnzahlCap.Text = 1
txtPreisCap.Text = Format(CType(btnCap.Tag, Double), "0.00 €")
Else
txtAnzahlCap.Text = txtAnzahlCap.Text + 1
txtPreisCap.Text = Format(CType(btnCap.Tag, Double) * CType(txtAnzahlCap.Text, Integer), "0.00 €")
End If
End Sub

Private Sub btnLatte_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLatte.Click
If txtAnzahlLatte.Text = "" Then
txtAnzahlLatte.Text = 1
txtPreisLatte.Text = Format(CType(btnLatte.Tag, Double), "0.00 €")
Else
txtAnzahlLatte.Text = txtAnzahlLatte.Text + 1
txtPreisLatte.Text = Format(CType(btnLatte.Tag, Double) * CType(txtAnzahlLatte.Text, Integer), "0.00 €")
End If

End Sub

Private Sub btnCola_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCola.Click
If txtAnzahlCola.Text = "" Then
txtAnzahlCola.Text = 1
txtPreisCola.Text = Format(CType(btnCola.Tag, Double), "0.00 €")
Else
txtAnzahlCola.Text = txtAnzahlCola.Text + 1
txtPreisCola.Text = Format(CType(btnCola.Tag, Double) * CType(txtAnzahlCola.Text, Integer), "0.00 €")
End If
End Sub

Private Sub btnRechnung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRechnung.Click
MsgBox(Format(CType(txtPreisKaf.Text, Double) + CType(txtPreisMineral.Text, Double) + CType(txtPreisCap.Text, Double) + CType(txtPreisLatte.Text, Double) + CType(txtPreisCola.Text, Double), "0.00 €"))
End Sub

Private Sub btnPreisliste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreisliste.Click
Dim frmPreisliste As New Preisliste
frmPreisliste.Show()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btnKaf.Tag = "0,80"
btnMineralw.Tag = "0,80"
btnCap.Tag = "0,90"
btnLatte.Tag = "1,10"
btnCola.Tag = "1,00"
End Sub

Private Sub btnLöschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLöschen.Click
txtAnzahlKaf.Text = 0
txtPreisKaf.Text = ""
txtAnzahlMineral.Text = 0
txtPreisMineral.Text = ""
txtAnzahlCap.Text = 0
txtPreisCap.Text = ""
txtAnzahlLatte.Text = 0
txtPreisLatte.Text = ""
txtAnzahlCola.Text = 0
txtPreisCola.Text = ""
End Sub

Private Sub btnEnde_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnde.Click
Close()
End Sub
End Class





Wenn ich das jetzt starte bekomme ich keine Meldung und alles läuft. wenn ich aber auf dem button RECHNUNG klicke kommt diese Meldung:

Eine nicht behandelte Ausnahme des Typs 'System.InvalidCastException' ist in microsoft.visualbasic.dll aufgetreten.

Zusätzliche Informationen: Ungültige Konvertierung von der Zeichenfolge '' in Typ 'Double'.


Und er markiert mir die zeile mit rechnungsbutton.

Kann mir einer helfen, DANKE

Bond786
09.03.2007, 22:53
So noch eins:

Diese Meldung taucht nur dann auf, wenn ich nicht mindestens von jedem Getränk eins ausgewählt habe.

so bald ich nur zwei getränke habe, taucht das auf

Noodles
10.03.2007, 14:54
Die Meldung sagt doch, dass ein Cast fehlschlägt. Nun schaust mal im debugger welcher das ist und schaust Dir die Zeichenfolge an.

TC_O
11.03.2007, 08:55
Das Problem ist die Umwandlung eines "Empty"-String nach Double.
Ändere den Code mal wie folgt:

Private Sub btnRechnung_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRechnung.Click

Dim nSumme As Double

If txtPreisKaf.TextLength > 0 Then nSumme = nSumme + CDbl(TextPreisKaf.Text)
If txtPreisMineral.TextLength > 0 Then nSumme = nSumme + CDbl(TextPreisMineral.Text)
If txtPreisCap.TextLength > 0 Then nSumme = nSumme + CDbl(TextPreisCap.Text)
If txtPreisLatte.TextLength > 0 Then nSumme = nSumme + CDbl(TextPreisLatte.Text)
If txtPreisCola.TextLength > 0 Then nSumme = nSumme + CDbl(TextPreisCola.Text)

MsgBox(Format(nSumme, "0.00 €"))
End Sub