none
problème de valeur dans une textbox et de label correspondant à la textbox RRS feed

  • Question

  • Bonjour,

    Je reviens pour un autre logiciel que je fabrique.

    Par contre j'ai un petit problème  j'ai une textbox avec une valeur quand la textBox  arrive à la dizaine le label1 se met en vert (correct) et aussi non  quand il se met pas  à la dizaine le label 2 se met en rouge ( Incorrect)

    par contre  je me fixe une limite si tout les chiffre en dessous de 60, le label 2 se met en rouge aussi.

    Voici mon code qui comporte des erreurs

    If TextBox49.Text = "60" Then Label2.ForeColor = Color.Green
            Label2.Visible = True
            Label3.Visible = False
            If TextBox49.Text = "70" Then Label2.ForeColor = Color.Green
            Label2.Visible = True
            Label3.Visible = False
            If TextBox49.Text = "80" Then Label2.ForeColor = Color.Green
            Label2.Visible = True
            Label3.Visible = False
            If TextBox49.Text = "90" Then Label2.ForeColor = Color.Green
            Label2.Visible = True
            Label3.Visible = False
    
            If TextBox49.Text = ("") Then Label3.ForeColor = Color.Red
            Label2.Visible = False
            Label3.Visible = True
            End

    Et voici en image mon problème.

    Pourriez-vous m'aider à résoudre mon code merci beaucoup.



    • Modifié Yannel777 jeudi 28 août 2014 20:15
    jeudi 28 août 2014 20:13

Réponses

  • Si c'est un Copier-Coller exact de votre code, y'a effectivement un problème. D'abord :

    1: If TextBox49.Text = "60" Then Label2.ForeColor = Color.Green
    2: Label2.Visible = True
    3: Label3.Visible = False

    Les lignes 2 et 3 sont toujours exécutées. Donc comme on voit ces même lignes répétées plusieurs fois, elles ne servent à rien. Donc votre code pourrait se résumer à :

    If TextBox49.Text = "60" Then Label2.ForeColor = Color.Green
    If TextBox49.Text = "70" Then Label2.ForeColor = Color.Green
    If TextBox49.Text = "80" Then Label2.ForeColor = Color.Green
    If TextBox49.Text = "90" Then Label2.ForeColor = Color.Green
    Label2.Visible = True
    Label3.Visible = False
    
    If TextBox49.Text = ("") Then Label3.ForeColor = Color.Red
            Label2.Visible = False
            Label3.Visible = True
    End

    Maintenant concernant l'évaluation de la valeur dans le TextBox, il est préférable d'utiliser la méthode TryParse de Int32 et suivi d'un select case :

     Dim value As Integer
    
            If (Not Integer.TryParse(TextBox49.Text, value)) Then
                Label2.Visible = False
                Label3.Visible = True
                Return
            End If
    
            Label2.Visible = True
            Label3.Visible = False
            ' valeur par défaut
            Label2.ForeColor = Color.Black
            ' une des valeurs attendues ?
            Select Case value
                Case 60, 70, 80, 90
                    Label2.ForeColor = Color.Green
            End Select

    (j'ai mis un select case pour que vous puissiez même mettre différentes couleurs suivant différentes valeurs


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

    • Marqué comme réponse Yannel777 vendredi 29 août 2014 21:50
    vendredi 29 août 2014 07:44
  • Bonjour,  merci de votre aide,

    J'ai repris votre code.

    Dim value As Integer
    
            If (Not Integer.TryParse(TextBox49.Text, value)) Then
                Label2.Visible = False
                Label3.Visible = True
                Return
            End If
    
            Label2.Visible = True
            Label3.Visible = False
            ' valeur par défaut
            Label2.ForeColor = Color.Black
            ' une des valeurs attendues ?
            Select Case value
                Case 60, 70, 80, 90
                    Label2.ForeColor = Color.Green
            End Select

     puis  je l'ai modifié pour mon logiciel, voici ce que cela donne.

     Dim value As Integer 
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    
    If (Not Integer.TryParse(TextBox49.Text, value)) Then
        
                Return
            End If
    
            Label4.Visible = True
            TextBox62.Visible = True
            TextBox62.Text() = TextBox56.Text()
            TextBox62.ForeColor = Color.Green
            Label3.Visible = True
            Label3.ForeColor = Color.Red
            Label2.Visible = False
            ' valeur par défaut
            
            ' une des valeurs attendues ?
            Select Case value
                Case 10, 20, 30, 40, 50, 60, 70, 80, 90
    
                    TextBox56.Text = "0"
                    TextBox52.Text = TextBox56.Text
                    Label2.ForeColor = Color.Green
                    Label2.Visible = True
                    TextBox56.Text = TextBox16.Text
                    Label4.Visible = False
                    TextBox62.Visible = False
                    Label3.Visible = False
            End Select
    
    
    
        End Sub

    Tout fonctionne bien.

    Cordialement Yann



    • Modifié Yannel777 vendredi 29 août 2014 21:50
    • Marqué comme réponse Yannel777 vendredi 29 août 2014 21:50
    vendredi 29 août 2014 21:48

Toutes les réponses

  • Bonjour,

    Visiblement, vous utilisez les valeurs Text de votre textbox ce qui pose problème pour gérer sa valeur.

    Essayer plutôt de convertir votre Text en int:

    Int32.Parse(TextBox49.Text)

    Ainsi, vous allez pouvoir faire des comparaison sur vos valeurs:

    if (Int32.Parse(TextBox49.Text) < 60)
             //Color is red

    cordialement

    Cédric

    vendredi 29 août 2014 07:28
  • Si c'est un Copier-Coller exact de votre code, y'a effectivement un problème. D'abord :

    1: If TextBox49.Text = "60" Then Label2.ForeColor = Color.Green
    2: Label2.Visible = True
    3: Label3.Visible = False

    Les lignes 2 et 3 sont toujours exécutées. Donc comme on voit ces même lignes répétées plusieurs fois, elles ne servent à rien. Donc votre code pourrait se résumer à :

    If TextBox49.Text = "60" Then Label2.ForeColor = Color.Green
    If TextBox49.Text = "70" Then Label2.ForeColor = Color.Green
    If TextBox49.Text = "80" Then Label2.ForeColor = Color.Green
    If TextBox49.Text = "90" Then Label2.ForeColor = Color.Green
    Label2.Visible = True
    Label3.Visible = False
    
    If TextBox49.Text = ("") Then Label3.ForeColor = Color.Red
            Label2.Visible = False
            Label3.Visible = True
    End

    Maintenant concernant l'évaluation de la valeur dans le TextBox, il est préférable d'utiliser la méthode TryParse de Int32 et suivi d'un select case :

     Dim value As Integer
    
            If (Not Integer.TryParse(TextBox49.Text, value)) Then
                Label2.Visible = False
                Label3.Visible = True
                Return
            End If
    
            Label2.Visible = True
            Label3.Visible = False
            ' valeur par défaut
            Label2.ForeColor = Color.Black
            ' une des valeurs attendues ?
            Select Case value
                Case 60, 70, 80, 90
                    Label2.ForeColor = Color.Green
            End Select

    (j'ai mis un select case pour que vous puissiez même mettre différentes couleurs suivant différentes valeurs


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

    • Marqué comme réponse Yannel777 vendredi 29 août 2014 21:50
    vendredi 29 août 2014 07:44
  • Bonjour,  merci de votre aide,

    J'ai repris votre code.

    Dim value As Integer
    
            If (Not Integer.TryParse(TextBox49.Text, value)) Then
                Label2.Visible = False
                Label3.Visible = True
                Return
            End If
    
            Label2.Visible = True
            Label3.Visible = False
            ' valeur par défaut
            Label2.ForeColor = Color.Black
            ' une des valeurs attendues ?
            Select Case value
                Case 60, 70, 80, 90
                    Label2.ForeColor = Color.Green
            End Select

     puis  je l'ai modifié pour mon logiciel, voici ce que cela donne.

     Dim value As Integer 
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    
    If (Not Integer.TryParse(TextBox49.Text, value)) Then
        
                Return
            End If
    
            Label4.Visible = True
            TextBox62.Visible = True
            TextBox62.Text() = TextBox56.Text()
            TextBox62.ForeColor = Color.Green
            Label3.Visible = True
            Label3.ForeColor = Color.Red
            Label2.Visible = False
            ' valeur par défaut
            
            ' une des valeurs attendues ?
            Select Case value
                Case 10, 20, 30, 40, 50, 60, 70, 80, 90
    
                    TextBox56.Text = "0"
                    TextBox52.Text = TextBox56.Text
                    Label2.ForeColor = Color.Green
                    Label2.Visible = True
                    TextBox56.Text = TextBox16.Text
                    Label4.Visible = False
                    TextBox62.Visible = False
                    Label3.Visible = False
            End Select
    
    
    
        End Sub

    Tout fonctionne bien.

    Cordialement Yann



    • Modifié Yannel777 vendredi 29 août 2014 21:50
    • Marqué comme réponse Yannel777 vendredi 29 août 2014 21:50
    vendredi 29 août 2014 21:48