Problème calculatrice (addition)

OmegaOff Messages postés 2 Date d'inscription mardi 21 septembre 2021 Statut Membre Dernière intervention 22 septembre 2021 - Modifié le 22 sept. 2021 à 17:23
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 22 sept. 2021 à 22:12
Hello,
Je débute dans le vb et j'ai essayer de faire une "calculatrice" juste deux TextBox avec un Button pour additionner les 2 TextBox j'ai essayé de m'entraîner pour mes débuts mais je cale depuis tout à l'heure soit je tombe sur 0 quand je modifie le code soit ça me fait ex 1+2 = 12
Je connais l'erreur sauf que le button est dans une private sub donc comment puis-je réussir à entrer des variables qui se trouve à diffèrentes private sub.
Visual Studio me dit que nbun et nbdeux ne sont pas detecté..
Ma question : comment inclure mon TextBox1 et TextBox2 dans mon Button ?
De l'aide please x)

Voici le code :
Public Class Form1
    Private Sub mybutton_Click(sender As Object, e As EventArgs) Handles mybutton.Click
        Dim resultat As DialogResult ' MessageBox = Dialog
        resultat = MessageBox.Show("Testons le boutons", "Apres la virgule le titre", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)

        If resultat = DialogResult.OK Then
            MessageBox.Show("Ok !")
        End If
    End Sub

    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Dim nbun As Integer
        nbun = Console.ReadLine()

    End Sub

    Private Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        Dim nbdeux As Integer
        nbdeux = Console.ReadLine()
    End Sub



    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Dim resm As Integer
        resm = nbun + nbdeux

        MessageBox.Show(resm)

    End Sub
End Class

2 réponses

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 22 sept. 2021 à 11:34
Bonjour
Attention aux termes employés : on n'additionne pas des Textbox . On additionne les valeurs numériques inscrites dans ces Textbox .
Le fait que tu obtiens parfois 1 + 2 = 12 vient du fait que l'opérande + a 2 rôles en VB Net
1 ) additionner 2 valeurs numériques : c'est l'addition classique
2) concaténer 2 variables de type String ( on préfère alors utiliser le & commercial comme opérande pour éviter toute confusion )
Dans ton projet tu utilises des TextBox : donc tu n'es plus en mode Console .
Pour lire le contenu d'un Textbox tu dois faire ainsi :
Dim ContenuText as String = Textbox1.Text

Attention c'est une variable de type String
A convertir en type Integer pour avoir la valeur numérique en Integer

Des cours VB Net pour débutant : https://plasserre.developpez.com/cours/vb-net/ ou https://tahe.developpez.com/dotnet/vbnet/

De plus pour présenter du code sur le site prière de suivre ce tuto : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code . Ton code sera en couleur , bien plus présentable et indenté .

0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
22 sept. 2021 à 14:15
Rebonjour
Pour ce qui concerne le fait que nbun et nbdeux ne sont pas détectés c'est parce ce sont des variables privées une dans la Sub TextBox1_TextChanged et l'autre dans la Sub TextBox2_TextChanged .
Donc la Sub Button2_Click qui fait le calcul ne les connait pas .
Il faut déclarer nbun et nbdeux comme variable privées pour toute la Form : voir le mot clé Private .
0
OmegaOff Messages postés 2 Date d'inscription mardi 21 septembre 2021 Statut Membre Dernière intervention 22 septembre 2021
22 sept. 2021 à 22:01
Hello,
Merci de votre réponse !
Cependant, j'aimerai savoir comment je pourrais évité que mon erreur car c'est toujours détecter ? Désolé d'en demander beaucoup ^^'
Voici le code +/- corriger :
Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        Dim nbun As Integer
        nbun = Console.ReadLine()

    End Sub

    Sub TextBox2_TextChanged(sender As Object, e As EventArgs) Handles TextBox2.TextChanged
        Dim nbdeux As Integer
        nbdeux = Console.ReadLine()
    End Sub



    Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

        Dim resm As Integer
        resm = nbun + nbdeux

        MessageBox.Show(resm)

    End Sub
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
22 sept. 2021 à 22:12
Bonjour
1) Je vous ai dit de ne pas utiliser le mode console .
2) les variables nbun et nbdeux qui représentent les valeurs numériques entrées sont toujours privées au niveau des Sub alors qu'elles devraient être privées au niveau de la Form .
3) les Textbox contenant une valeur de type String il fait faire la conversion en Integer pour affecter cette valeur à nbun ou nbdeux .

Cela ne sert à rien de mettre la charrue avant les bœufs : avant de faire un programme tout simple il faut d'abord se familiariser avec l'interface de VB Net puis assimiler les notions de variable avec leur différent type .
Suis les cours que je t'ai indiqué en les assimilant correctement : c'est la seule façon valable de progresser . ensuite tu pourras reprendre ton projet .
0
Rejoignez-nous