Couinement lors de la frappe sur la touche "Entrée" [Résolu]

- - Dernière réponse :  Zermelo - 26 avril 2013 à 18:56
Bonjour à toutes et à tous.

Sur un formulaire nommé Accueil, j'ai placé un TextBox monoligne nommé tBox et un Label nommé lBox, et j'ai écrit le code
Public Class Accueil

    Private Sub tBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tBox.KeyUp
        If e.KeyCode 13 Then lBox.Text tBox.Text
    End Sub

    Private Sub tBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tBox.KeyPress
        If Convert.ToUInt32(e.KeyChar) 13 Then e.KeyChar Convert.ToChar(3)
    End Sub

End Class

en vue de faire en sorte que, le TextBox étant actif, la frappe sur la touche "Entrée" provoque sans couinement le transfert dans lBox du texte contenu dans tBox. Le code de l'évènement KeyPress, trouvé par tâtonnement, me paraissant relever de la quadrisectomie capillaire longitudinale, je serais reconnaissant à qui me proposerait un code plus simple.

Remerciements anticipés.

Étant illettré, je signe d'une croix : ×
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Dernière intervention
17 avril 2017
3
Merci
Bonjour,

Pour éviter le bip (le couinement) en VB6 on code ainsi :
If KeyCode vbKeyReturn then KeyCode 0

Je suppose qu'en VB2005 ce sera :
If e.KeyCode 13 Then e.KeyCode 0: lBox.Text = tBox.Text 

Cheyenne

Merci cs_cheyenne 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_cheyenne
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
Bonjour, Zermelo,
L'évènement KeyPress me parait plus approprié, puisque travaillant avec le KeyChar
Tu devrais l'essayer, avec bien sûr la propriété Multiline à True, en t'inspirant de l'exemple donné patr MSDN ===>>
Tapez le texte de l'url ici.
et en décidant ce que tu veux si Asc(e.KeyChar) = 13
Mais, comme tu le sais, je ne suis pas VB.Nettiste et ne peux donc affirmer que ce sera bon. Essaye quand-même.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Merci ucfoutu 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
e.Handled = True fait que la touche frappée (donc ta touche enter si elle est concernée) est ignorée.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.

Merci ucfoutu 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de ucfoutu
0
Merci
Bonjour Cheyenne.

Moi aussi j'avais cru cela. Mais en vb 2010 (je n'ai pas vb 2005), les KeyCode sont ReadOnly. D'ailleurs tous les KeyMachin le sont, sauf le KeyChar. Snif!

Merci pour votre réponse.

Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Merci
Bonjour ucfoutu

Si le TextBox est déclaré multiligne, la frappe de la touche Entrée est prise en compte comme un retour à la ligne. D'autre part, Asc(e.KeyChar) = 13 est obsolète en vb 2010, d'où la conversion par la classe Convert.

Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Si le TextBox est déclaré multiligne, la frappe de la touche Entrée est prise en compte comme un retour à la ligne

pas si tu l'annules (regarde l'exemple du lien que je t'ai passé)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Bonsoir.
J'ai apporté une petite modification, qui clarifie sans changer le principe
Imports System.Convert
Public Class Accueil

    Private Sub tBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tBox.KeyUp
        If e.KeyCode 13 Then lBox.Text tBox.Text
    End Sub

    Private Sub tBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tBox.KeyPress
        If ToChar(13) e.KeyChar Then e.KeyChar ToChar(3)
    End Sub

End Class

J'ai par ailleurs vérifié que ce code fonctionne que le TextBox soit multiligne ou non. Dans l'écriture e.KeyChar ToChar( x ), j'ai bestialement essayé à partir de x 0.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo

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.