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