[VB] Problème calcul dans nouveau textbox

Problème calcul dans nouveau textbox [VB] - Programmation

Marsh Posté le 09-01-2002 à 13:34:58    

Hello, faut m'excuser car je suis vraiment un newbie. Mais alors vraiment ....
 
Bref, je fais un calcul bête dans 2 textbox, cad que je rentre un chiffre dans une textbox puis un autre dans l'autre textbox .
Le calcul de ces deux txt me donne le résultat dans une troisième text. Le problème c'est que je ne trouve pas comment faire. (en fait je n'utilise pas de bouton pour valider le calcul). Ce que je veux c'est que lorsque les deux txt sont rempli il m'execute le calcul.
 
 
Comment on fait svp !!!!!
 
Merci merci merci d'avance

Reply

Marsh Posté le 09-01-2002 à 13:34:58   

Reply

Marsh Posté le 09-01-2002 à 13:58:16    

Le probème est de savoir "comment la machine peut savoir que la saisie des nombres est terminée". Quand question a une solution, ça devient limpide...
 
Un moyen est de "changer de champ" : si on fait TAB pour passer au champ suivant, ou on clique ailleurs, l'évènement LostFocus peut être utilisé (de mémoire d'ancien). Faut vérifier si l'autre champ a été renseigné.
 
En gérant les caractères tapés au fur et à mesure, on peut même afficher dans le troisième texte le résultat "live".
2    1 => 2
2    1, => 2
2    1,5 => 3,0
2    1,51 => 3,02  
2,   1,51 => 3,02
2,4  1,51 => 3,624
 
NB : les virgules, c'est frenchy, mais les points, c'est généralement plus sûr pour les valeurs numériques.

Reply

Marsh Posté le 09-01-2002 à 13:58:24    

En double cliquant sur tes textbox tu accèdes au code VB et là tu cherches l'évènement 'Validate' (ça peut marcher avec 'Change' mais c'est pas trop le pb).
Dans cet évènement tu lances une fonction VB qui  
1/ vérifie que les deux textbox sont remplies (if textbox1 <> "" and textbox2 <> "" then...)
2/ calcule la troisième ( textbox3 = textbox1 * textbox2)
 
Bon je t'ai donné ici un exemple d'ordre général. A toi de l'adapter ou de demander des précisions.
 
A+

Reply

Marsh Posté le 09-01-2002 à 14:17:20    

En fait, lorsque je rentre un nombre dans les deux textboxs, la troisième (Résultat) reste vide.
 
Mais lorsque je la sélectionne et que je tape n'importe quoi il me fait le calcul.
 
Voici mon code :
 
    Private Sub txtcalculvoiture_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcalculvoiture.TextChanged
 
 
        Dim montantvoiture As Single
        Dim puissancefiscal As Single
        Dim km As Single
 
         
        km = txtkm.Text
        puissancefiscal = txtcv.Text
 
        'Calcul
        montantvoiture = km * puissancefiscal
 
        txtcalculvoiture.Text = montantvoiture
 
    End Sub

Reply

Marsh Posté le 09-01-2002 à 14:24:19    

lordkatarn a écrit a écrit :

En fait, lorsque je rentre un nombre dans les deux textboxs, la troisième (Résultat) reste vide.
 
Mais lorsque je la sélectionne et que je tape n'importe quoi il me fait le calcul.
 
Voici mon code :
 
    Private Sub txtcalculvoiture_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcalculvoiture.TextChanged
 
 
        Dim montantvoiture As Single
        Dim puissancefiscal As Single
        Dim km As Single
 
         
        km = txtkm.Text
        puissancefiscal = txtcv.Text
 
        'Calcul
        montantvoiture = km * puissancefiscal
 
        txtcalculvoiture.Text = montantvoiture
 
    End Sub  




 
c normal tu t trompé d'évenement  
 
prend plutot txtkm_change et txtcv_change
là ta procèdure se lance au change du txtcalculvoiture donc c normal kil fasse le traitement ke kan tu change la valeur de ce textbox

Reply

Marsh Posté le 09-01-2002 à 14:25:26    

private sub txtkm_change
   'calcul en faisant txtkm * txtcv
   ...
end sub
 
private sub txtcv_change
   'calcul en faisant txtkm * txtcv
   ...
end sub

Reply

Marsh Posté le 09-01-2002 à 14:32:30    

super ça marche
 
mille merci
 
donc il fallait mettre dans les deux textbox, le calcul.
 
ok
 
merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed