Hallo zusammen!
Ich habe ein Problem. Ich muss einen Taschenrechner in VB.NET programmieren.
Jetzt mein Problem. Wie krieg ich es hin, dass ich öfter hinter einander plus rechnen kann, ohne dazwischen = zu drücken?
Hier der Quelltext. Danke im voraus.
Public Class Taschenrechner
#Region "Variablen"
Public bolNeueZahl As Boolean = False
Public strOperation As String = ""
Public dblSpeicher As Double = 0
Public dblZwischenergebnis As Double = 0
#End Region
#Region "Buttons"
' Drücken Button 1
Private Sub cmdEins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEins.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "1"
txtRechnen.Text = txtRechnen.Text & "1"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "1"
txtRechnen.Text = txtRechnen.Text & "1"
End If
End Sub
' Drücken Button 2
Private Sub cmdZwei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdZwei.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "2"
txtRechnen.Text = txtRechnen.Text & "2"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "2"
txtRechnen.Text = txtRechnen.Text & "2"
End If
End Sub
' Drücken Button 3
Private Sub cmdDrei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDrei.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "3"
txtRechnen.Text = txtRechnen.Text & "3"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "3"
txtRechnen.Text = txtRechnen.Text & "3"
End If
End Sub
' Drücken Button 4
Private Sub cmdVier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVier.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "4"
txtRechnen.Text = txtRechnen.Text & "4"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "4"
txtRechnen.Text = txtRechnen.Text & "4"
End If
End Sub
' Drücken Button 5
Private Sub cmdFünf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFünf.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "5"
txtRechnen.Text = txtRechnen.Text & "5"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "5"
txtRechnen.Text = txtRechnen.Text & "5"
End If
End Sub
' Drücken Button 6
Private Sub cmdSechs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSechs.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "6"
txtRechnen.Text = txtRechnen.Text & "6"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "6"
txtRechnen.Text = txtRechnen.Text & "6"
End If
End Sub
' Drücken Button 7
Private Sub cmdSieben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSieben.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "7"
txtRechnen.Text = txtRechnen.Text & "7"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "7"
txtRechnen.Text = txtRechnen.Text & "7"
End If
End Sub
' Drücken Button 8
Private Sub cmdAcht_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAcht.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "8"
txtRechnen.Text = txtRechnen.Text & "8"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "8"
txtRechnen.Text = txtRechnen.Text & "8"
End If
End Sub
' Drücken Button 9
Private Sub cmdNeun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNeun.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "9"
txtRechnen.Text = txtRechnen.Text & "9"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "9"
txtRechnen.Text = txtRechnen.Text & "9"
End If
End Sub
' Drücken Button 0
Private Sub cmdNull_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNull.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "0"
txtRechnen.Text = txtRechnen.Text & "0"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "0"
txtRechnen.Text = txtRechnen.Text & "0"
End If
End Sub
' Komma Behandlung
Private Sub cmdKomma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKomma.Click
If txtErgebnisleiste.Text = "" Then Exit Sub
If txtErgebnisleiste.Text.Contains(",") = True Then
MsgBox("Nur ein Komma möglich!")
Exit Sub
End If
txtErgebnisleiste.Text = txtErgebnisleiste.Text & ","
End Sub
#End Region
#Region "Rechenbefehle"
' Plus-Befehl
Private Sub cmdPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlus.Click
If txtErgebnisleiste.Text = "" Then Exit Sub
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Plus"
txtRechnen.Text = txtRechnen.Text & "+"
bolNeueZahl = True
End Sub
' Minus-Befehl
Private Sub cmdMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinus.Click
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Minus"
txtRechnen.Text = txtRechnen.Text & "-"
bolNeueZahl = True
End Sub
' Geteilt-Befehl
Private Sub cmdGeteilt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGeteilt.Click
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Geteilt"
txtRechnen.Text = txtRechnen.Text & "/"
bolNeueZahl = True
End Sub
' Mal-Befehl
Private Sub cmdMal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMal.Click
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Mal"
txtRechnen.Text = txtRechnen.Text & "*"
bolNeueZahl = True
End Sub
' IstGleich-Befehl
Private Sub cmdIstGleich_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIstGleich.Click
If txtErgebnisleiste.Text = "" Then Exit Sub
If dblSpeicher = 0 Then Exit Sub
If strOperation = "" Then Exit Sub
Call berechnen(dblSpeicher, Convert.ToDouble(txtErgebnisleiste.Text), "=")
txtRechnen.Text = txtRechnen.Text & "=" & txtErgebnisleiste.Text
End Sub
' Berechnungsfunktion
Function berechnen(ByVal dblZahl1 As Double, ByVal dblZahl2 As Double, ByVal strOp As String) As Boolean
Select Case strOperation
Case "Plus"
txtErgebnisleiste.Text = dblZahl1 + dblZahl2
Case "Minus"
txtErgebnisleiste.Text = dblZahl1 - dblZahl2
Case "Geteilt"
txtErgebnisleiste.Text = dblZahl1 / dblZahl2
Case "Mal"
txtErgebnisleiste.Text = dblZahl1 * dblZahl2
End Select
End Function
#End Region
End Class
Ich habe ein Problem. Ich muss einen Taschenrechner in VB.NET programmieren.
Jetzt mein Problem. Wie krieg ich es hin, dass ich öfter hinter einander plus rechnen kann, ohne dazwischen = zu drücken?
Hier der Quelltext. Danke im voraus.
Public Class Taschenrechner
#Region "Variablen"
Public bolNeueZahl As Boolean = False
Public strOperation As String = ""
Public dblSpeicher As Double = 0
Public dblZwischenergebnis As Double = 0
#End Region
#Region "Buttons"
' Drücken Button 1
Private Sub cmdEins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEins.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "1"
txtRechnen.Text = txtRechnen.Text & "1"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "1"
txtRechnen.Text = txtRechnen.Text & "1"
End If
End Sub
' Drücken Button 2
Private Sub cmdZwei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdZwei.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "2"
txtRechnen.Text = txtRechnen.Text & "2"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "2"
txtRechnen.Text = txtRechnen.Text & "2"
End If
End Sub
' Drücken Button 3
Private Sub cmdDrei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDrei.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "3"
txtRechnen.Text = txtRechnen.Text & "3"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "3"
txtRechnen.Text = txtRechnen.Text & "3"
End If
End Sub
' Drücken Button 4
Private Sub cmdVier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVier.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "4"
txtRechnen.Text = txtRechnen.Text & "4"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "4"
txtRechnen.Text = txtRechnen.Text & "4"
End If
End Sub
' Drücken Button 5
Private Sub cmdFünf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFünf.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "5"
txtRechnen.Text = txtRechnen.Text & "5"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "5"
txtRechnen.Text = txtRechnen.Text & "5"
End If
End Sub
' Drücken Button 6
Private Sub cmdSechs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSechs.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "6"
txtRechnen.Text = txtRechnen.Text & "6"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "6"
txtRechnen.Text = txtRechnen.Text & "6"
End If
End Sub
' Drücken Button 7
Private Sub cmdSieben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSieben.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "7"
txtRechnen.Text = txtRechnen.Text & "7"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "7"
txtRechnen.Text = txtRechnen.Text & "7"
End If
End Sub
' Drücken Button 8
Private Sub cmdAcht_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAcht.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "8"
txtRechnen.Text = txtRechnen.Text & "8"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "8"
txtRechnen.Text = txtRechnen.Text & "8"
End If
End Sub
' Drücken Button 9
Private Sub cmdNeun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNeun.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "9"
txtRechnen.Text = txtRechnen.Text & "9"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "9"
txtRechnen.Text = txtRechnen.Text & "9"
End If
End Sub
' Drücken Button 0
Private Sub cmdNull_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNull.Click
If bolNeueZahl = True Then
txtErgebnisleiste.Text = "0"
txtRechnen.Text = txtRechnen.Text & "0"
bolNeueZahl = False
Else
txtErgebnisleiste.Text = txtErgebnisleiste.Text & "0"
txtRechnen.Text = txtRechnen.Text & "0"
End If
End Sub
' Komma Behandlung
Private Sub cmdKomma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdKomma.Click
If txtErgebnisleiste.Text = "" Then Exit Sub
If txtErgebnisleiste.Text.Contains(",") = True Then
MsgBox("Nur ein Komma möglich!")
Exit Sub
End If
txtErgebnisleiste.Text = txtErgebnisleiste.Text & ","
End Sub
#End Region
#Region "Rechenbefehle"
' Plus-Befehl
Private Sub cmdPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPlus.Click
If txtErgebnisleiste.Text = "" Then Exit Sub
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Plus"
txtRechnen.Text = txtRechnen.Text & "+"
bolNeueZahl = True
End Sub
' Minus-Befehl
Private Sub cmdMinus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinus.Click
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Minus"
txtRechnen.Text = txtRechnen.Text & "-"
bolNeueZahl = True
End Sub
' Geteilt-Befehl
Private Sub cmdGeteilt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGeteilt.Click
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Geteilt"
txtRechnen.Text = txtRechnen.Text & "/"
bolNeueZahl = True
End Sub
' Mal-Befehl
Private Sub cmdMal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMal.Click
dblSpeicher = Convert.ToDouble(txtErgebnisleiste.Text)
strOperation = "Mal"
txtRechnen.Text = txtRechnen.Text & "*"
bolNeueZahl = True
End Sub
' IstGleich-Befehl
Private Sub cmdIstGleich_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIstGleich.Click
If txtErgebnisleiste.Text = "" Then Exit Sub
If dblSpeicher = 0 Then Exit Sub
If strOperation = "" Then Exit Sub
Call berechnen(dblSpeicher, Convert.ToDouble(txtErgebnisleiste.Text), "=")
txtRechnen.Text = txtRechnen.Text & "=" & txtErgebnisleiste.Text
End Sub
' Berechnungsfunktion
Function berechnen(ByVal dblZahl1 As Double, ByVal dblZahl2 As Double, ByVal strOp As String) As Boolean
Select Case strOperation
Case "Plus"
txtErgebnisleiste.Text = dblZahl1 + dblZahl2
Case "Minus"
txtErgebnisleiste.Text = dblZahl1 - dblZahl2
Case "Geteilt"
txtErgebnisleiste.Text = dblZahl1 / dblZahl2
Case "Mal"
txtErgebnisleiste.Text = dblZahl1 * dblZahl2
End Select
End Function
#End Region
End Class
Comment