none
Additionner des textbox suite RRS feed

  • Question

  • Bonjour, je cherchais à additionner des textbox et on m'a bien gentiment aider en me proposant ce code qui fonctionne très bien à un détail prêt : je suis obligé de saisir des données dans tous les textbox avant de voir apparaître le résultat dans le textbox final.

    Dans mon projet, tous les textbox ne seront pas forcément remplis donc je souhaiterais que le calcul se fasse dès la 1ere saisie dans le 1er textbox.

    Voici ce code :

      Private Sub txt_TextChanged(sender As Object, e As EventArgs) Handles txtA.TextChanged, txtB.TextChanged
           
    Dim a As Decimal
           
    Dim b As Decimal

           
    If (Decimal.TryParse(txtA.Text, a) AndAlso Decimal.TryParse(txtB.Text, b)) Then
                txtResult
    .Text = (a + b).ToString(System.Globalization.CultureInfo.InvariantCulture)
           
    Else
                txtResult
    .Text = "???"
           
    End If
       
    End Sub

     

     
    vendredi 1 mai 2015 15:42

Réponses

  • Bonjour,

    Effectivement, votre programme ne peut pas vous donner le total avant que tous les champs n'aient été remplis.

    Pour obtenir le résultat que vous chercher vous devez déclarer 5 variables:
    dim param1,param2, param3,param4,param5  as decimal
    param1 = 0.0;
    param2 = 0.0;
    param3 = 0.0;
    param4 = 0.0;
    param5 = 0.0;

    et une gestion des évènements pour chaque champ.

    private Sub param1Textchanged(sender As Object, e As EventArgs)
    Dim a As Decimal
    if (Decimal.TryParse(txtA.Text, a)
    then
    param1=a
    calculerTotal()
    endif
    endsub

    private Sub param2Textchanged(sender As Object, e As EventArgs)
    Dim a As Decimal
    if (Decimal.TryParse(txtA.Text, a)
    then
    param2=a
    calculerTotal()
    endif
    endsub

    private Sub calculerTotal()
    total= param1 + param2 + param3 + param4 + param5
    txtResult.Text = total.ToString(System.Globalization.CultureInfo.InvariantCulture)
    end sub

    Cordialement
    Gérard



    • Proposé comme réponse GP79 samedi 2 mai 2015 08:32
    • Modifié GP79 samedi 2 mai 2015 08:52
    • Marqué comme réponse Jean-François Collombet dimanche 3 mai 2015 05:51
    samedi 2 mai 2015 08:32

Toutes les réponses

  • Bonjour,

    Effectivement, votre programme ne peut pas vous donner le total avant que tous les champs n'aient été remplis.

    Pour obtenir le résultat que vous chercher vous devez déclarer 5 variables:
    dim param1,param2, param3,param4,param5  as decimal
    param1 = 0.0;
    param2 = 0.0;
    param3 = 0.0;
    param4 = 0.0;
    param5 = 0.0;

    et une gestion des évènements pour chaque champ.

    private Sub param1Textchanged(sender As Object, e As EventArgs)
    Dim a As Decimal
    if (Decimal.TryParse(txtA.Text, a)
    then
    param1=a
    calculerTotal()
    endif
    endsub

    private Sub param2Textchanged(sender As Object, e As EventArgs)
    Dim a As Decimal
    if (Decimal.TryParse(txtA.Text, a)
    then
    param2=a
    calculerTotal()
    endif
    endsub

    private Sub calculerTotal()
    total= param1 + param2 + param3 + param4 + param5
    txtResult.Text = total.ToString(System.Globalization.CultureInfo.InvariantCulture)
    end sub

    Cordialement
    Gérard



    • Proposé comme réponse GP79 samedi 2 mai 2015 08:32
    • Modifié GP79 samedi 2 mai 2015 08:52
    • Marqué comme réponse Jean-François Collombet dimanche 3 mai 2015 05:51
    samedi 2 mai 2015 08:32
  • Bonjour,

    Je ne suis pas d'accord sur le principe de donner une réponse alors que les données ne sont pas présentes. Mais bon, ce n'est que mon opinion ;-)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    lundi 11 mai 2015 05:20
  • Bonjour,je reviens donc vers vous avec mon problème de textbox à additionner. J'ai essayé d'écrire le code de Gérard mais cela me donne des erreurs et je n'arrive pas à les corriger.

    Je vous met donc (comme demander par Richard Clark) une capture d'écran de mon projet simplifié qui contient 4 textbox.

    les 3 1ere (textbox1,textbox2,textbox3) contiennent des valeurs décimal ou non qui doivent s'additionner dans la 4eme (textbox4)

    Bien sur les 3 textbox ne seront pas forcément toutes remplies.

    Merci de votre aide c'est un projet que je dois finaliser assez rapidement.

    dimanche 17 mai 2015 08:47