Public Class Form1
Dim valeur1, valeur2 As Single
Dim ResultatAffiche As Boolean = False
Dim DerniereOp As String = ""
Dim TextChng As Boolean = False
Public Sub Operation(ByVal Op As String, ByVal Type As Int16)
If Type = 1 Then ' Fonctions qui n'ont pas besoin de DerniereOp
Select Case Op
Case "SQRT"
txtAffichage.Text = System.Math.Sqrt(Convert.ToSingle(txtAffichage.Text))
Case "1/X"
txtAffichage.Text = 1 / Convert.ToSingle(txtAffichage.Text)
Case "Effacer"
txtAffichage.Text = txtAffichage.Text.Remove(txtAffichage.Text.Length - 1)
If txtAffichage.Text.Length = 0 Then
txtAffichage.Text = "0"
End If
End Select
ElseIf Type = 2 Then ' Fonctions qui ont besoin de DerniereOp
If DerniereOp.Length = 0 Then
DerniereOp = Op
ResultatAffiche = True
valeur1 = Convert.ToSingle(txtAffichage.Text)
TextChng = False
ElseIf Op = "Egal" Or TextChng = True Then
Select Case DerniereOp
Case "Addition"
valeur2 = Convert.ToSingle(txtAffichage.Text) + valeur1
Case "Soustraction"
valeur2 = valeur1 - Convert.ToSingle(txtAffichage.Text)
Case "Multiplication"
valeur2 = Convert.ToSingle(txtAffichage.Text) * valeur1
Case "Division"
valeur2 = valeur1 / Convert.ToSingle(txtAffichage.Text)
End Select
txtAffichage.Text = valeur2
valeur1 = Convert.ToSingle(txtAffichage.Text)
If Op <> "Egal" Then
DerniereOp = Op
End If
ResultatAffiche = True
TextChng = False
Else
DerniereOp = Op
End If
End If
End Sub
Public Sub AfficherNumero(ByVal Num As String)
If ResultatAffiche = True Then
txtAffichage.Clear()
End If
If txtAffichage.Text = "0" And Num <> "-2" Then
txtAffichage.Clear()
End If
Select Case Num
Case 1
txtAffichage.Text += "1"
Case 2
txtAffichage.Text += "2"
Case 3
txtAffichage.Text += "3"
Case 4
txtAffichage.Text += "4"
Case 5
txtAffichage.Text += "5"
Case 6
txtAffichage.Text += "6"
Case 7
txtAffichage.Text += "7"
Case 8
txtAffichage.Text += "8"
Case 9
txtAffichage.Text += "9"
Case 0
If Not (txtAffichage.Text.IndexOf(0) = "0" And txtAffichage.Text.Length = 1) Then
txtAffichage.Text += "0"
Else
Exit Sub
End If
Case "-1" ' Affiche le point
If Not txtAffichage.Text.Contains(".") Then
If txtAffichage.Text.Length = 0 Then
txtAffichage.Clear()
txtAffichage.Text += "0."
Else
txtAffichage.Text += "."
End If
End If
Case "-2" ' Affiche le -
If txtAffichage.Text.Length > 0 And txtAffichage.Text <> "0" Then
txtAffichage.Text = Convert.ToSingle(txtAffichage.Text) * -1
End If
End Select
ResultatAffiche = False
End Sub
Private Sub btnUn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUn.Click
AfficherNumero(1)
End Sub
Private Sub btnDeux_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeux.Click
AfficherNumero(2)
End Sub
Private Sub btnTrois_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTrois.Click
AfficherNumero(3)
End Sub
Private Sub btnQuatres_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuatres.Click
AfficherNumero(4)
End Sub
Private Sub btnCinq_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCinq.Click
AfficherNumero(5)
End Sub
Private Sub btnSix_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSix.Click
AfficherNumero(6)
End Sub
Private Sub btnSept_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSept.Click
AfficherNumero(7)
End Sub
Private Sub btnHuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHuit.Click
AfficherNumero(8)
End Sub
Private Sub btnNeuf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNeuf.Click
AfficherNumero(9)
End Sub
Private Sub btnZero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZero.Click
AfficherNumero(0)
End Sub
Private Sub btnPoint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPoint.Click
AfficherNumero("-1")
End Sub
Private Sub btnSigne_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSigne.Click
AfficherNumero("-2")
End Sub
Private Sub btnAdditioner_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdditioner.Click
Operation("Addition", 2)
End Sub
Private Sub btnSoustraire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSoustraire.Click
Operation("Soustraction", 2)
End Sub
Private Sub btnMultiplier_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMultiplier.Click
Operation("Multiplication", 2)
End Sub
Private Sub btnDiviser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDiviser.Click
Operation("Division", 2)
End Sub
Private Sub btnEgal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEgal.Click
Operation("Egal", 2)
End Sub
Private Sub btnC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnC.Click
txtAffichage.Text = "0"
valeur1 = vbEmpty
valeur2 = vbEmpty
TextChng = False
DerniereOp = ""
End Sub
Private Sub txtAffichage_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
MessageBox.Show("bas")
TextChng = True
End Sub
Private Sub btnCarre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCarre.Click
Operation("SQRT", 1)
End Sub
Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click
Operation("1/X", 1)
End Sub
Private Sub btnBackspace_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackspace.Click
Operation("Effacer", 1)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtAffichage.Text = "0"
Me.KeyPreview = True
End Sub
Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If (Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57) Then ' Numeros entre 0 et 9
AfficherNumero(e.KeyChar)
ElseIf Asc(e.KeyChar) = 46 Or Asc(e.KeyChar) = 44 Then ' Virgule (,) ou Point (.) [Affichera un . par defaut)
AfficherNumero(-1)
ElseIf Asc(e.KeyChar) = 95 Then ' -
AfficherNumero(-2)
ElseIf Asc(e.KeyChar) = 8 Then ' BackSpace
Operation("Effacer", 1)
End If
End Sub
End Class