Hallo,
ich hab folgendes Problem...
ich programmiere gerade einen Rechner für den PC
Diesen bediene ich halt über die Buttons aber auch per Tastatur.
Soooweit funktioniert das auch.
Nur drücke ich die Enter Taste und er soll mir eigentlich das Ergebnis ausrechnen, greift meines Wissens nach die Windows-Programmierung der Enter Taste und er führt den Befehl des markierten Buttons aus, welches er aber nicht tun soll. In meinem Fall Button 2.
Wie unterbinde ich das und er soll bloß alles ausrechnen.
ich hab folgendes Problem...
ich programmiere gerade einen Rechner für den PC
Diesen bediene ich halt über die Buttons aber auch per Tastatur.
Soooweit funktioniert das auch.
Nur drücke ich die Enter Taste und er soll mir eigentlich das Ergebnis ausrechnen, greift meines Wissens nach die Windows-Programmierung der Enter Taste und er führt den Befehl des markierten Buttons aus, welches er aber nicht tun soll. In meinem Fall Button 2.
Wie unterbinde ich das und er soll bloß alles ausrechnen.
Public Class formRechner
Dim Zahl As String
Dim Zwischenergebnis As String
Dim Zahlenspeicher_1 As String
Dim Zahlenspeicher_2 As String
Dim Zahlenspeicher_3 As String
Private Ziffer As String
Dim Rechenart As String
Dim Rechenart_2 As String
Dim Rechnung As String
Dim neue_Zahl As Boolean
Dim neue_Rechnung As Boolean
Dim PunktvorStrich As Boolean
Private Sub formRechner_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Rechnung = ""
Rechenart = ""
Rechenart_2 = ""
Zahl = ""
Zwischenergebnis = ""
Zahlenspeicher_1 = ""
Zahlenspeicher_2 = ""
Ziffer = ""
neue_Zahl = True
neue_Rechnung = True
PunktvorStrich = False
KeyPreview = True
End Sub
Private Sub SubZiffer(ByVal sender As System.Object, ByVal e As System.EventArgs)
If neue_Zahl = True Then
lblformel.Text = ""
End If
If neue_Rechnung = True Then
Rechenart = ""
End If
If Zahl = "0" Then
lblformel.Text = ""
Zahl = ""
End If
Zahl &= Ziffer
lblformel.Text &= Ziffer
neue_Zahl = False
neue_Rechnung = False
End Sub
Private Sub SubRechnen(ByVal sender As System.Object, ByVal e As System.EventArgs)
Select Case Rechenart
Case ""
Zahlenspeicher_1 = Zahl
Case "plus"
Select Case (PunktvorStrich)
Case False
Select Case (Rechenart_2)
Case ""
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) + CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "mal"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) + CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) + CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
Case True
Select Case (Rechenart_2)
Case ""
Zahlenspeicher_2 = Zahl
Case "mal"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
End Select
Case "minus"
Select Case (PunktvorStrich)
Case False
Select Case (Rechenart_2)
Case ""
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) - CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "mal"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) - CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) - CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
Case True
Select Case (Rechenart_2)
Case ""
Zahlenspeicher_2 = Zahl
Case "mal"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
End Select
Case "mal"
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) * CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) / CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case Else
lblformel.Text = "Fehler."
End Select
neue_Zahl = True
Zahl = ""
neue_Rechnung = False
End Sub
Private Sub formRechner_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case (e.KeyCode)
Case Keys.Escape
Me.Close()
Case Keys.Back, Keys.Delete
Call cmdClear_Click(sender, e)
Case Keys.NumPad0, Keys.D0
Call cmdNull_Click(sender, e)
Case Keys.NumPad1, Keys.D1
Call cmdEins_Click(sender, e)
Case Keys.NumPad2, Keys.D2
Call cmdZwei_Click(sender, e)
Case Keys.NumPad3, Keys.D3
Call cmdDrei_Click(sender, e)
Case Keys.NumPad4, Keys.D4
Call cmdVier_Click(sender, e)
Case Keys.NumPad5, Keys.D5
Call cmdFünf_Click(sender, e)
Case Keys.NumPad6, Keys.D6
Call cmdSechs_Click(sender, e)
Case Keys.NumPad7, Keys.D7
Call cmdSieben_Click(sender, e)
Case Keys.NumPad8, Keys.D8
Call cmdAcht_Click(sender, e)
Case Keys.NumPad9, Keys.D9
Call cmdNeun_Click(sender, e)
Case Keys.Add, Keys.Oemplus
Call cmdplus_Click(sender, e)
Case Keys.Subtract, Keys.OemMinus
Call cmdminus_Click(sender, e)
Case Keys.Multiply, Keys.LShiftKey And Keys.Oemplus
Call cmdmal_Click(sender, e)
Case Keys.Divide, Keys.LShiftKey And Keys.D7
Call cmdgeteilt_Click(sender, e)
Case Keys.Return, Keys.Enter
Call cmdIst_Click(sender, e)
End Select
End Sub
Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClear.Click
Rechnung = ""
Rechenart = ""
Rechenart_2 = ""
Zahl = ""
Zwischenergebnis = ""
Zahlenspeicher_1 = ""
Zahlenspeicher_2 = ""
Ziffer = ""
lblformel.Text = ""
neue_Zahl = True
neue_Rechnung = True
PunktvorStrich = False
End Sub
Private Sub cmdNull_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNull.Click
Ziffer = 0
Call SubZiffer(sender, e)
End Sub
Private Sub cmdEins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEins.Click
Ziffer = 1
Call SubZiffer(sender, e)
End Sub
Private Sub cmdZwei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdZwei.Click
Ziffer = 2
Call SubZiffer(sender, e)
End Sub
Private Sub cmdDrei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDrei.Click
Ziffer = 3
Call SubZiffer(sender, e)
End Sub
Private Sub cmdVier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVier.Click
Ziffer = 4
Call SubZiffer(sender, e)
End Sub
Private Sub cmdFünf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFünf.Click
Ziffer = 5
Call SubZiffer(sender, e)
End Sub
Private Sub cmdSechs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSechs.Click
Ziffer = 6
Call SubZiffer(sender, e)
End Sub
Private Sub cmdSieben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSieben.Click
Ziffer = 7
Call SubZiffer(sender, e)
End Sub
Private Sub cmdAcht_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAcht.Click
Ziffer = 8
Call SubZiffer(sender, e)
End Sub
Private Sub cmdNeun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNeun.Click
Ziffer = 9
Call SubZiffer(sender, e)
End Sub
Private Sub cmdplus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdplus.Click
PunktvorStrich = False
Call SubRechnen(sender, e)
Rechenart_2 = ""
Rechenart = "plus"
End Sub
Private Sub cmdminus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdminus.Click
PunktvorStrich = False
Call SubRechnen(sender, e)
Rechenart_2 = ""
Rechenart = "minus"
End Sub
Private Sub cmdmal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdmal.Click
Select Case (Rechenart)
Case "plus", "minus"
PunktvorStrich = True
End Select
Call SubRechnen(sender, e)
Select Case (PunktvorStrich)
Case True
Rechenart_2 = "mal"
Case Else
Rechenart = "mal"
End Select
End Sub
Private Sub cmdgeteilt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdmal.Click
Select Case (Rechenart)
Case "plus", "minus"
PunktvorStrich = True
End Select
Call SubRechnen(sender, e)
Select Case (PunktvorStrich)
Case True
Rechenart_2 = "geteilt"
Case Else
Rechenart = "geteilt"
End Select
End Sub
Private Sub cmdIst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIst.Click
PunktvorStrich = False
Call SubRechnen(sender, e)
neue_Rechnung = True
Rechenart_2 = ""
End Sub
End Class
Dim Zahl As String
Dim Zwischenergebnis As String
Dim Zahlenspeicher_1 As String
Dim Zahlenspeicher_2 As String
Dim Zahlenspeicher_3 As String
Private Ziffer As String
Dim Rechenart As String
Dim Rechenart_2 As String
Dim Rechnung As String
Dim neue_Zahl As Boolean
Dim neue_Rechnung As Boolean
Dim PunktvorStrich As Boolean
Private Sub formRechner_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Rechnung = ""
Rechenart = ""
Rechenart_2 = ""
Zahl = ""
Zwischenergebnis = ""
Zahlenspeicher_1 = ""
Zahlenspeicher_2 = ""
Ziffer = ""
neue_Zahl = True
neue_Rechnung = True
PunktvorStrich = False
KeyPreview = True
End Sub
Private Sub SubZiffer(ByVal sender As System.Object, ByVal e As System.EventArgs)
If neue_Zahl = True Then
lblformel.Text = ""
End If
If neue_Rechnung = True Then
Rechenart = ""
End If
If Zahl = "0" Then
lblformel.Text = ""
Zahl = ""
End If
Zahl &= Ziffer
lblformel.Text &= Ziffer
neue_Zahl = False
neue_Rechnung = False
End Sub
Private Sub SubRechnen(ByVal sender As System.Object, ByVal e As System.EventArgs)
Select Case Rechenart
Case ""
Zahlenspeicher_1 = Zahl
Case "plus"
Select Case (PunktvorStrich)
Case False
Select Case (Rechenart_2)
Case ""
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) + CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "mal"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) + CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) + CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
Case True
Select Case (Rechenart_2)
Case ""
Zahlenspeicher_2 = Zahl
Case "mal"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
End Select
Case "minus"
Select Case (PunktvorStrich)
Case False
Select Case (Rechenart_2)
Case ""
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) - CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "mal"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) - CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) - CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
Case True
Select Case (Rechenart_2)
Case ""
Zahlenspeicher_2 = Zahl
Case "mal"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) * CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
If Zahl = "" Then
Zahl = Zahlenspeicher_3
End If
Zahlenspeicher_3 = Zahl
Rechnung = CDbl(Zahlenspeicher_2) / CDbl(Zahlenspeicher_3)
Zahlenspeicher_2 = Rechnung
lblformel.Text = Rechnung
End Select
End Select
Case "mal"
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) * CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case "geteilt"
If Zahl = "" Then
Zahl = Zahlenspeicher_2
End If
Zahlenspeicher_2 = Zahl
Rechnung = CDbl(Zahlenspeicher_1) / CDbl(Zahlenspeicher_2)
Zahlenspeicher_1 = Rechnung
lblformel.Text = Rechnung
Case Else
lblformel.Text = "Fehler."
End Select
neue_Zahl = True
Zahl = ""
neue_Rechnung = False
End Sub
Private Sub formRechner_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case (e.KeyCode)
Case Keys.Escape
Me.Close()
Case Keys.Back, Keys.Delete
Call cmdClear_Click(sender, e)
Case Keys.NumPad0, Keys.D0
Call cmdNull_Click(sender, e)
Case Keys.NumPad1, Keys.D1
Call cmdEins_Click(sender, e)
Case Keys.NumPad2, Keys.D2
Call cmdZwei_Click(sender, e)
Case Keys.NumPad3, Keys.D3
Call cmdDrei_Click(sender, e)
Case Keys.NumPad4, Keys.D4
Call cmdVier_Click(sender, e)
Case Keys.NumPad5, Keys.D5
Call cmdFünf_Click(sender, e)
Case Keys.NumPad6, Keys.D6
Call cmdSechs_Click(sender, e)
Case Keys.NumPad7, Keys.D7
Call cmdSieben_Click(sender, e)
Case Keys.NumPad8, Keys.D8
Call cmdAcht_Click(sender, e)
Case Keys.NumPad9, Keys.D9
Call cmdNeun_Click(sender, e)
Case Keys.Add, Keys.Oemplus
Call cmdplus_Click(sender, e)
Case Keys.Subtract, Keys.OemMinus
Call cmdminus_Click(sender, e)
Case Keys.Multiply, Keys.LShiftKey And Keys.Oemplus
Call cmdmal_Click(sender, e)
Case Keys.Divide, Keys.LShiftKey And Keys.D7
Call cmdgeteilt_Click(sender, e)
Case Keys.Return, Keys.Enter
Call cmdIst_Click(sender, e)
End Select
End Sub
Private Sub cmdClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdClear.Click
Rechnung = ""
Rechenart = ""
Rechenart_2 = ""
Zahl = ""
Zwischenergebnis = ""
Zahlenspeicher_1 = ""
Zahlenspeicher_2 = ""
Ziffer = ""
lblformel.Text = ""
neue_Zahl = True
neue_Rechnung = True
PunktvorStrich = False
End Sub
Private Sub cmdNull_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNull.Click
Ziffer = 0
Call SubZiffer(sender, e)
End Sub
Private Sub cmdEins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdEins.Click
Ziffer = 1
Call SubZiffer(sender, e)
End Sub
Private Sub cmdZwei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdZwei.Click
Ziffer = 2
Call SubZiffer(sender, e)
End Sub
Private Sub cmdDrei_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDrei.Click
Ziffer = 3
Call SubZiffer(sender, e)
End Sub
Private Sub cmdVier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdVier.Click
Ziffer = 4
Call SubZiffer(sender, e)
End Sub
Private Sub cmdFünf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFünf.Click
Ziffer = 5
Call SubZiffer(sender, e)
End Sub
Private Sub cmdSechs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSechs.Click
Ziffer = 6
Call SubZiffer(sender, e)
End Sub
Private Sub cmdSieben_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSieben.Click
Ziffer = 7
Call SubZiffer(sender, e)
End Sub
Private Sub cmdAcht_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAcht.Click
Ziffer = 8
Call SubZiffer(sender, e)
End Sub
Private Sub cmdNeun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNeun.Click
Ziffer = 9
Call SubZiffer(sender, e)
End Sub
Private Sub cmdplus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdplus.Click
PunktvorStrich = False
Call SubRechnen(sender, e)
Rechenart_2 = ""
Rechenart = "plus"
End Sub
Private Sub cmdminus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdminus.Click
PunktvorStrich = False
Call SubRechnen(sender, e)
Rechenart_2 = ""
Rechenart = "minus"
End Sub
Private Sub cmdmal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdmal.Click
Select Case (Rechenart)
Case "plus", "minus"
PunktvorStrich = True
End Select
Call SubRechnen(sender, e)
Select Case (PunktvorStrich)
Case True
Rechenart_2 = "mal"
Case Else
Rechenart = "mal"
End Select
End Sub
Private Sub cmdgeteilt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdmal.Click
Select Case (Rechenart)
Case "plus", "minus"
PunktvorStrich = True
End Select
Call SubRechnen(sender, e)
Select Case (PunktvorStrich)
Case True
Rechenart_2 = "geteilt"
Case Else
Rechenart = "geteilt"
End Select
End Sub
Private Sub cmdIst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIst.Click
PunktvorStrich = False
Call SubRechnen(sender, e)
neue_Rechnung = True
Rechenart_2 = ""
End Sub
End Class
Anhänge
Zuletzt bearbeitet: