IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Valider un textbox avec la touche Entrée


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Valider un textbox avec la touche Entrée
    Bonjour,

    Je cherche à valider un textbox avec la touche Entrée.
    J'ai lu pas mal de choses sur les forums mais je n'en ai trouvé aucun qui réponde exactement à mon cas (pourtant classique je pense).
    - le textbox n'est pas multiligne
    - le curseur ne doit pas quitter le textbox (je ne veux pas sélectionner un autre contrôle lorsque la touche Entrée est utilisée)
    - l'effet de la validation par la touche entrée doit déclencher l'Event Validated du TextBox

    Tout se passe dans l'event KeyPress, je pense, et ça commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if e.keychar = chr(13) then
     
    EndIf
    C'est le code à taper dans le IF THEN que je ne trouve pas


    Qqun a-t-il une idée ?

  2. #2
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Essayes ceci:
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Class Form1
     
        Private Sub TextBox1_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Validated
            EventValidatedSub()
        End Sub
     
        Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            If (e.KeyChar = ChrW(13)) Then
                EventValidatedSub()
            End If
        End Sub
     
        Private Sub EventValidatedSub()
            MessageBox.Show("coucou!")
        End Sub
     
     
    End Class

  3. #3
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour callo

    L'api dot.net en regorge d'exemples.En voici un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Public Class Form6
     
        Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            ' keypressed  uses  KeyChar property 
     
            ' 1/ Si ENTER key est presse  & 
            ' 2/ si texte valide
            '  Handled property is mis à  true, 
            If e.KeyChar = CType(ChrW(Keys.Return), Char) Then
                Dim errorMsg As String = "un texte de 6 cars est requis."
                If Not ValidationTexte(TextBox1.Text, errorMsg) Then
     
                    '  Handled property is mis à  False, 
                    e.Handled = False
                    ' reset textbox pour correction.  
                    TextBox1.Select(0, TextBox1.Text.Length)
                Else
                    '  Handled property is mis à  False, 
                    e.Handled = True
                    ' focus sur textbox2
                    Me.TextBox2.Focus()
                End If
     
            End If
     
        End Sub
     
     
        'simple fonction de validation
        Private Function ValidationTexte(ByVal txt As String, ByVal errorMsg As String) As Boolean
            ' Confirm  text lenght in the control >=6 
            If TextBox1.Text.Length < 6 Then
                MessageBox.Show(errorMsg)
                Return False
     
            End If
            Return True
        End Function

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    bonjour,

    Merci pour vos réponses.
    La réponse de Mabrouki ne correspond pas à mon besoin : Je ne veux pas que le focus quitte le contrôle (cf mon post initial)

    La réponse de Callo me va bien. Je suis bête de ne pas y avoir pensé. Je pense que, inconsciemment, j'imaginais une solution plus simple qui forcerait la validation du contrôle du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if e.keychar = chr(13) then
    textbox.validate 'évidemment, cette méthode n'existe pas !!
    endif
    Je suppose que cette solution n'existe pas sinon vous me l'auriez spontanément suggérée.

    Je vais donc adopter la méthode de callo.

    Encore merci !

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    L'intellisense propose TonTextBox_Validated, si l'événement TontextBox.Validated a été créé.
    Que l'on peut exploiter de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
            If e.KeyCode = Keys.Return Then
                TextBox1_Validated(TextBox1, New EventArgs)
            End If
        End Sub
     
        Private Sub TextBox1_Validated(sender As Object, e As EventArgs) Handles TextBox1.Validated
            Console.WriteLine(TextBox1.Text)
        End Sub
    Reste à savoir si il n'y a pas de problème de déclencher ainsi Validated.

  6. #6
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Voilà, c'est exactement ça que je cherchais à faire, d'autant que j'ai déjà des procédures Event sur Validated.

    Je ne savais pas qu'on pouvait faire appel à l'une de ces procédures directement, et tu viens de me montrer la syntaxe pour les paramètres de cet appel.

    Merci beaucoup

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 166
    Par défaut Valider un textbox à partir de la touche ENTER
    Bonsoir,

    J'ai lu les différents messages sur le forum, mais j'ai des difficultés avec ce qui est noté

    Dans un textbox, j’inscris un texte et ensuite je clique sur la touche ENTER. Je souhaite récupérer la valeur dans une variable

    Comment fait on ?

    Merci d'avance

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim Oscar as string   = textbox1.tex

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Valider un textbox avec la touche ENTER
    Par grimgrim dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/06/2014, 15h56
  2. Valider une textbox avec la touche entrée
    Par Chacha35 dans le forum C#
    Réponses: 11
    Dernier message: 04/09/2009, 14h48
  3. Valider mot de passe avec la touche "entrée" du clavier
    Par Volcano_94 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/12/2008, 13h19
  4. Réponses: 4
    Dernier message: 04/09/2007, 08h51
  5. valider le contenu d'un textbox par la touche entrée
    Par camilla dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2005, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo