Recuperer une valeur particulière d'un form dans un autre [Résolu]

Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 28 févr. 2011 à 09:28 - Dernière réponse : Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention
- 1 mars 2011 à 11:51
Bonjour,
J'ai une appli qui possède 2 Forms

Je rencontre 2 petit soucis

1/pour recuperer une valeur du form1 au form2
d'habitude, je fais :
ma_textbox_qui_recupere.Text = .ma_textbox_à_recuperer.ToString("0.00")

et cela fonctionne sans problème

au cas précis, j'ai le textbox "age" qui calcule une valeur âge avec les paramètres suivants :
Private Sub TxtNAISSANCE_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNAISSANCE.Leave
        If Verificationdate() = False Then
            MessageBox.Show("La date de naissance du patient est incorrecte", "Erreur saisie", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TxtNAISSANCE.Text = ""
            TxtNAISSANCE.Refresh()
            Exit Sub
        End If
        TextAge.Text = CalculAge(TxtNAISSANCE.Text).ToString
    End Sub


ce textbox situé dans le form1 calcule l'age des que le textbox precedant (naissance) perd le focus. Je n'ai donc pas d'action de tabulation a faire, je rentre la date de naissance,je tabule, l'age se calcule tout seul et

eh bien je cherche a recuperer cette valeur d'âge dans mon form2 sachant que la méthode que j'utilise ne fonctionne pas mais me donne a chaque fois "0.00"

2/ dans cette meme appli, je veux limiter certaines valeurs a 2 chiffres après la virgule, j'ai donc fait par exemple :
Toto.Text = .valtoto.ToString("0.00")
pour avoir 2 chiffres maxi après la virgule

cela fonctionne mais je voudrais aussi que cela fonctionne en saisie, par exemple:
je saisis ma valeur "toto" a 45, je voudrais que dans le textbox la valeur s'affiche en 45.00
en VB6 je savais faire mais en VB.NET ........

Merci bien a tous
Afficher la suite 

12 réponses

Répondre au sujet
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 1 mars 2011 à 09:46
+3
Utile
Salut

Private Sub toto_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles toto.LostFocus
        Dim sp As String
        sp = 1 / 2
        sp = sp.Substring(1, 1)
        Dim rs As String

        Try
            Double.Parse(toto.Text)
            toto.Text = Double.Parse(toto.Text).ToString("#0.00#")
            rs = toto.Text.Substring(toto.Text.IndexOf(sp))
            If rs.Length - 1 > 2 Then
                MessageBox.Show("plus de 2 chiffre après" & sp)
                Exit Sub
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 28 févr. 2011 à 12:10
0
Utile
Salut
essaie ça

Label1.Text = "45"
        Try
            Double.Parse(Label1.Text)
            Label1.Text = Double.Parse(Label1.Text).ToString("#0.00#")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 28 févr. 2011 à 12:12
0
Utile
corrige
 Label1.Text = "45"
        Try
            Label1.Text = Double.Parse(Label1.Text).ToString("#0.00#")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
Commenter la réponse de cs_ShayW
Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 28 févr. 2011 à 12:44
0
Utile
salut ShayW,
Merci, je teste ... pour info, 45 n'est pas une valeur figée, je rentre ce que je veux dans cette textbox, le but est que la textbox ajoute elle même le .00 ou le ,00 si il n'est pas entre, ceci pour harmoniser toutes les textbox
Commenter la réponse de Attila54
Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 28 févr. 2011 à 12:45
0
Utile
pas de changement, je n'ai toujours pas de decimale automatique
Commenter la réponse de Attila54
Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 28 févr. 2011 à 13:22
0
Utile
Concernant mon problème de mise en page des données chiffrées.

Le log procède actuellement en 2 etapes :
- A la saisie des données a entrer, j'ai :
mabox.Text = mabox.Text.Replace(".", ",")
qui fait accepter donc la "," ou le "."

- Une fois tout saisi, mon bouton calcul génère la mise en forme quand on clique dessus par :
C.Text = valC.ToString("0.00")
qui met donc les 2 chiffres après la virgule

Ce que j'amerais, c'est faire tout d'un coup en une seule et même instruction a la saisie des données

voila, j'arrive a "dissequer le souci" mais pas à le regler .......
Commenter la réponse de Attila54
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 28 févr. 2011 à 14:17
0
Utile
dans toto tu n'as que des nombres ?
si oui donc ça doit marcher
le code d'en haut avec Label1.Text = "45"
c'est pour tester seulement
donc avec toto ça ,marche qu'à condition dans toto tu as un nombre
Try
           toto.Text = Double.Parse(toto.Text).ToString("#0.00#")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
Commenter la réponse de cs_ShayW
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 28 févr. 2011 à 14:20
0
Utile
il faut placer le code après avoir inserer une
valeur dans le textbox toto
Commenter la réponse de cs_ShayW
Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 28 févr. 2011 à 14:43
0
Utile
Ben non ca ne marche pas, j'ai mon initialisation ici (exemple pour la Textbox TOTO qui ne contient que des chiffres :
 Private Sub Calcul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calcul.Click

        ' on accepte aussi bien la virgule que le point pour les nombres décimaux
        TOTO.Text = TOTO.Text.Replace(".", ",")
        ...........
        .ValTOTO = Convert.ToDouble(TOTO.Text)
            If TOTO.Text.Length - TOTO.Text.IndexOf(",") > 3 Then
                MessageBox.Show("le paramètre TOTO a plus de 2 chiffres après la virgule", "Erreur saisie", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Exit Sub
            End If
            TOTO.Text =  .valTOTO.ToString("0.00") ' 2 chiffres après la virgule


Cela me fait la chose suivante :
- je saisis les données
- Si le nombre a plus de 2 chiffres après la virgule, msgbox
- Sinon saisie des autres nombres
- Lorsque je clique sur "calcul" ==> mise en forme de TOTO avec 2 chiffres après la virgule

Ce que je veux moi c'est :
- Je saisis la donnée
- des que je tabule pour passer à l'autre donnée, la première se met en forme avec les 2 chiffres après la virgule
Commenter la réponse de Attila54
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 28 févr. 2011 à 15:33
0
Utile
TOTO.Text = TOTO.Text.Replace(".", ",")

si le séparateur décimal est un . ?

donc je propose

Private Sub calcul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles calcul.Click
        Dim sp As String
        sp = 1 / 2
        sp = sp.Substring(1, 1)
        Dim rs As String

        Try
            Double.Parse(toto.Text)
            toto.Text = Double.Parse(toto.Text).ToString("#0.00#")
            rs = toto.Text.Substring(toto.Text.IndexOf(sp))
            If rs.Length - 1 > 2 Then
                MessageBox.Show("plus de 2 chiffre après" & sp)
                Exit Sub
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
Commenter la réponse de cs_ShayW
Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 1 mars 2011 à 09:31
0
Utile
bonjour ShayW

Merci pour tes lumières mais j'ai toujours un problème car après test, il fait effectivement ce que je veux mais .... toujours sur click du bouton calcul, alors que moi, je veux la mise en forme des que la textbox concernée perd le focus.
Commenter la réponse de Attila54
Attila54 409 Messages postés jeudi 30 juin 2005Date d'inscription 21 novembre 2013 Dernière intervention - 1 mars 2011 à 11:51
0
Utile
Ca y est, cela fonctionne comme je voulais
J'ai du tout adapter le code du bouton calcul, textbox par textbox et adapter le tien pour chaque textbox mais je suis satisfait du résultat .
Encore mille merci
Commenter la réponse de Attila54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.