Contrôle sur textbox

becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 10 juil. 2017 à 12:49 - Dernière réponse : becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention
- 11 juil. 2017 à 11:52
Bonjour,
Je me permets de vous poser une question peut être bête, mais je ne trouve pas la réponse…

J’ai plusieurs textbox.
Je dois comparer la valeur de mes textbox avec un intervalle.

1er textbox :
je saisi une valeur dans ma textbox
je vérifie si cette valeur est comprise entre 10 et 20
si c’est le cas alors je passe au textbox suivant
sinon je reste dans ma textbox (tant que je n’ai pas saisi la bonne valeur)

Private Sub textbox1_TextChanged(sender As Object, e As EventArgs) Handles textbox1.TextChanged

        Dim int As Integer
        CM1.MaxLength = 
        Int32.TryParse(CM1.Text, int)

	 While int<10 and int>20
         
            Textbox1.Focus()
 	      Msgbox(“veuillez saisir un chiffre entre 10 et 20”)	
        End while

    End Sub


Pouvez-vous me dire ce qui ne va s pas SVP.

En vous remerciant d’avance.
Afficher la suite 

10 réponses

Répondre au sujet
cs_ShayW 3233 Messages postés jeudi 26 novembre 2009Date d'inscription 6 décembre 2017 Dernière intervention - 10 juil. 2017 à 15:56
0
Utile
Bonjour

D'abord While int<10 and int>20

pas logique int ne peut pas etre inférieur à 10 et supérieur à 20
Commenter la réponse de cs_ShayW
becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 10 juil. 2017 à 16:16
0
Utile
Effectivment, mais ceci dit, j'ai essayé autrement, et toujours rien :
si la valeur saisi est entre 10 et 20 alors tout est ok :

  Private Sub textbox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

        Dim int As Integer
        TextBox1.MaxLength = 2
        Int32.TryParse(TextBox1.Text, int)

        If (int > 10 Or int < 20) Then
            MsgBox("tout est ok")
        Else
            TextBox1.Focus()
            MsgBox(“veuillez saisir un chiffre entre 10 et 20”)
        End If

    End Sub
End Clas
Commenter la réponse de becool_75
cs_ShayW 3233 Messages postés jeudi 26 novembre 2009Date d'inscription 6 décembre 2017 Dernière intervention - 10 juil. 2017 à 16:26
Commenter la réponse de cs_ShayW
becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 10 juil. 2017 à 16:38
0
Utile
Je découvre vb.net.... je vais voir de ce coté.
Merci pour l'info.
Commenter la réponse de becool_75
Whismeril 10822 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 janvier 2018 Dernière intervention - 10 juil. 2017 à 18:52
0
Utile
1
Bonsoir, la proposition de Shayw: le numeric up down est une bonne idée, tu configures le min, le max et on n'en parle plus.
Cependant, ton code entier est incorrect, et si on ne te l'explique pas, tu recommenceras sans comprendre pourquoi ça ne marche pas bien

D'abord, tu mélanges du VB6 et du VB.Net, la plupart du temps ça marche, mais quand ça plante, un débutant est incapable de trouver pourquoi.
Lis ceci et applique les conseils listés.

        Dim int As Integer
        TextBox1.MaxLength = 2'ça n'a rien à faire là, tu peux le mettre dans la fenêtre propriété en mode design, ou encore dans l'évènement Load. Ici ça sera répété à chaque saisie alors qu'un fois pour toute suffit.
        
        Int32.TryParse(TextBox1.Text, int)'ça c'est bien, tu testes si l'opérateur à tapé un nombre, mais s'il a écrit une lettre tu continues ton code, pas logique. int vaudra 0 donc sera rejeté, mais la logique voudrais que tu regardes le résultat du TryParse. 

        If (int > 10 Or int < 20) Then' et si je suis en train de tapper 12 qui est compris dans l'intervalle, mais que à l'instant ou on parle, j'ai juste tapé le 1, ça va me mettre un message d'erreur, sans même me laisser ma chance de bien faire. Moi utilisateur, ça va m'énerver.
            MsgBox("tout est ok")
        Else
            TextBox1.Focus()
            MsgBox(“veuillez saisir un chiffre entre 10 et 20”)
        End If


Voilà ce que je te propose (en restant dans l'évènement TextChanged qui n'est pas l'idéal pour traiter ce genre de chose, si tu le souhaites je te montrerai autre chose)

        Dim int As Integer
        Dim resultat As Boolean = Int32.TryParse(MTotalOut.Text, int)

        If TextBox1.Text = "1" OrElse TextBox1.Text = "2" Then
            'on ne fait rien on lui laisse sa chance à l'utilisateur
        ElseIf resultat = True AndAlso int > 10 AndAlso int < 20 Then 'sinon on regarde s'il a bien tappé un nombre et <souligne>si et seulement si (andalso)</souligne> oui on teste l'intervalle
            MessageBox.Show("OK")
        Else 'et sinon c'est pas bien
            MessageBox.Show("Non")

        End If


becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 11 juil. 2017 à 09:37
Slt Whismeril,
Merci beaucoup pour ta réponse.
Je vais tester ce matin et je te tiens au courant.
Commenter la réponse de Whismeril
becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 11 juil. 2017 à 10:48
0
Utile
Ça marche :) Merci Whismeril
Une question, l'intervalle étant petit (de 10 à 20) ça ne pose pas de problème. Mais si j'agrandis l'intervalle de X à Y ( de 0 à 400 par exemple...)
Si tu as autre chose à me montrer, je suis partant.

Encore une fois, merci beaucoup, cela faisait 2 jours que j’étais bloqué sur ce point.
Commenter la réponse de becool_75
becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 11 juil. 2017 à 10:50
0
Utile
Slt cs_ShayW, j'ai regardé le lien sur numeric up down... je n'ai pas très bien compris comment ça marche :(
Commenter la réponse de becool_75
Whismeril 10822 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 janvier 2018 Dernière intervention - 11 juil. 2017 à 11:43
0
Utile
As tu posé le.controle sur ta Form, as tu essayé de le paramétrer?
Commenter la réponse de Whismeril
becool_75 7 Messages postés lundi 10 juillet 2017Date d'inscription 11 juillet 2017 Dernière intervention - 11 juil. 2017 à 11:52
0
Utile
humm... le controle sur la Form..? Je n'ai pas bien saisis..
Commenter la réponse de becool_75

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.