Keychar

spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 13 août 2009 à 04:35
FredDorine Messages postés 6 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 16 décembre 2011 - 6 avril 2011 à 15:49
Bonsoir car il fait soir chez moi lol,

J'ai un petit souci, pas de bug ni rien sauf que je n'ai pas le résultat que je souhaite. Bon, avant de vous dire ce que c'est mon problème, voici mon code :

[b]Private Sub txtuser_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtuser.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
If Me.txtuser.Text = "" Then
MsgBox("Ce champ est obligatoire. Veuillez le remplir.", MsgBoxStyle.Information, "Madrassati")
Else
Me.txtpass.Focus()
End If
Else
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Tab) Then
MsgBox("Pour atteindre le champ suivant, veuillez cliquez sur ENTRER", MsgBoxStyle.Information, "toto")
End If
End If
End Sub/b

Voilà, que je clique sur ENTRER j'obtiens le résultat désiré et quand je clique sur TABULATION je ne reçois pas le message mais le focus passe directement au bouton.

D'après vous pourquoi ?

Merci.

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
13 août 2009 à 07:00
pas confondre KeyCode et KeyChar

les touches F1 à F12, par exemple, ne génèrent pas de caractère ASCII

du coup, pas de KeyPress pour ces touches, juste KeyDown/KeyUp.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
13 août 2009 à 10:03
salut,

en effet, au down ou up

et en vb.net de préférence...
(ps : j'ai mis ENTER mais c'est peut-être RETURN... à vérifier)

    Private Sub txtuser_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtuser.KeyDown
        If e.KeyCode = Keys.Enter Then
            If txtuser.Text.Length = 0 Then
                MessageBox.Show("Ce champ est obligatoire. Veuillez le remplir.", "Madrassati", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                txtpass.Focus()
            End If
        ElseIf e.KeyCode = Keys.Tab Then
            MessageBox.Show("Pour atteindre le champ suivant, veuillez cliquez sur ENTRER", "toto", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub


[hr]
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
13 août 2009 à 19:40
Bonjour,

Merci pour vos réponses.
J'ai utilisé le down avec la méthode que vous venez de me montrer. Pour la touche ENTER ou RETURN (ils marchent tous les deux avec la touche ENTRER) j'obtiens le résultat désiré, mais quand je clique sur TAB le focus passe au composant suivant et ce n'est pas ce que je désire, car au lieu de passer au composant suivant, il doit m'afficher un message.
C'est mon souci, car même avec le KeyPress j'obtiens le même résultat.

Merci.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 75
13 août 2009 à 22:37
pas possible d'utiliser l'evenement de perte de focus, ou de validation ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
14 août 2009 à 01:29
Désolé mais je n'ai pas compris votre question.
0
FredDorine Messages postés 6 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 16 décembre 2011
6 avril 2011 à 15:49
j'ai le meme probleme:
Private Shadows Sub grptxt_keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles grptxt.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
MsgBox("ça marche..?")

ET CELA NE MARCHE MALHEURESEMENT PAS..

merci de me proposer une solution

non novae sed nova... (rien de nouveau sauf la manière)
0
Rejoignez-nous