Valider TextBox [Résolu]

cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 12 mai 2006 à 17:33 - Dernière réponse : anwar666 24 Messages postés jeudi 21 février 2008Date d'inscription 12 juillet 2010 Dernière intervention
- 9 juil. 2009 à 23:10
Salut à tous,

Voila je voudrais valider mon textBox quand je tape sur "ENTER" au lieu de devoir cliquer sur le bouton rechercher de mon application .... Mais je ne sais pas comment faire !

Merci de m'aider
Afficher la suite 

17 réponses

cs_nico1610 402 Messages postés jeudi 26 août 2004Date d'inscription 19 juin 2009 Dernière intervention - 13 mai 2006 à 01:48
+3
Utile
Reprend ce que t'as dit jack a une différance pres : remplace <strike>keypress</strike> par keydown !! et non pas<strike> keyup</strike> (keyup qui est bien du vb6)



En effet : il y exsiste trois commandes :

une qui réagit quand tu arretes de presser la touche (keyup)

une qui réagit quand tu es en train d'appuyer sur la touche (keypress)

une qyu réagit quand tu appuyes sur la touche.(keydown)



Soit dans l'ordre chronologique KeyDown >> KeyPress >> KeyUp



Il faut aussi savoir que le fameux BIP de windows réagit au moment de la commande keypress .

Donc il faut pouvoir détécté la pression de la touche avant windows,
executer son code et enfin faire croire à windows qu'il ne c'est rien
passé soit :



(KeyDown comme ces deux soeur est un evenement qui s'affiche de la même
facon que Form_Load ou même Command1_Click : un double clic sur l
composant TEXTBOX puis dans le menu déroulant en haut a droite tu
séléction [KEYDOWN] )



(Code compatible VB4,5,6)(Code incompatible VB.NET !!)

Private Sub Text1_KeyDown (KeyCode As Integer)

If KeyCode = 13 Then '13 est le retour chariot (ENTER)

monBouton_Click 'La fonction que tu executes

KeyCode = 0 'Et la tu fait croirea windows


'qu' aucune touche n'est préssé


'et comme ca pas de beep

End If

End Sub



Voila. donc jack, dsl mais tu n'avais pas raison cette fois ci!



PS:Profite bien de cette reponce, rare sont les fois ou je suis aussi soigné !
Cette réponse vous a-t-elle aidé ?  
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 12 mai 2006 à 18:12
0
Utile
Salut
Classique :
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
monBouton_Click
' Evite le beep
KeyAscii = 0
End If
End Sub

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 12 mai 2006 à 18:18
0
Utile
Ca ne fonctionne pas, quand je pousse enter j'ai un Beep.

merci quand même
JB76000 135 Messages postés vendredi 4 juin 2004Date d'inscription 14 février 2013 Dernière intervention - 12 mai 2006 à 18:29
0
Utile
Dans les propriétés default = true
Ou en code textbox.default = true

Jer
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 12 mai 2006 à 18:31
0
Utile
la propriété default n'existe pas pour un textbox
tinux 246 Messages postés mercredi 13 avril 2005Date d'inscription 21 octobre 2013 Dernière intervention - 12 mai 2006 à 18:46
0
Utile
On peut essayer ça :

Crée un évenement KeyUp sur ton Textbox

et place le code :

if e.keycode = Keys.Enter then

'ici ton code

End if

Sa te donne sa :

Private Sub TextBox1_KeyUp(ByVal sender As System.Object, Byval e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp

if e.keycode = Keys.Enter then

'ici ton code

End if

End sub

Voilà !
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 12 mai 2006 à 18:51
0
Utile
Private Sub txtRechercher_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
pctRecherche_Click
End If
End Sub

Merci ,Voila le code du dessus fonctionne.

Mais j'ai un Beep y'a t'il moyen de l'enlever ???
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 12 mai 2006 à 19:14
0
Utile
... C'est du VB6 ou du .Net (j'en ai marre de poser cette question ....)
JB76000 m'a fait penser à ceci :
Si, dans ta forme, un des boutons Command a la propriété Default à True, l'évènement TextBox_KeyPress ne se déclenche pas.
Si la forme elle même a la propriété KeyPreview a True, elle verra le KeyPress avant les autres composants.
--> Lire l'aide de VB, tout y est expliqué

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 12 mai 2006 à 19:18
0
Utile
c'est du VB6 et je n'ai pas de command avec la propriété default = true sur ma form
tinux 246 Messages postés mercredi 13 avril 2005Date d'inscription 21 octobre 2013 Dernière intervention - 12 mai 2006 à 19:32
0
Utile
Ok et pas non plus de KeyUP ==> .NET
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 13 mai 2006 à 00:33
0
Utile
Désolé, mais en VB6, le code que je t'ai mis fonctionne très bien.
J'espère que tu as mondifié le nom des objets ... Text1 et monBouton
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 13 mai 2006 à 04:43
0
Utile
lol, si j'ai raison et, Nico, en VB6, "KeyCode = 0" ne fonctionne pas ! Il génère quand même le beep.

La fonctionnalité de détection du vbKeyReturn dans le KeyPress fonctionne, c'est garanti.
Le KeyAscii = 0 pour éviter le Beep fonctionne, c'est garanti aussi
Franchement, je ne vois pas où est le problème ...

Pour en revenir aux KeyDown et KeyUp :
Ces évènements renvoient un KeyCode, pas un KeyAscii : La grosse différence est que KeyCode renvoie la touche (matérielle) clavier pressée.
Avantage : Elles voient toutes les touches de fonction.
Inconvénient 1 : si on appuie sur "a", le KeyCode renvoie de code ascii de "A" (et pas "a")
Inconvénient 2 : Un "KeyCode = 0" ne fonctionne pas et génère un Beep

Le KeyPress est donc plus indiqué, mais vous faites bien comme vous le voulez ...

Vala
Jack, MVP VB
Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
cs_nico1610 402 Messages postés jeudi 26 août 2004Date d'inscription 19 juin 2009 Dernière intervention - 13 mai 2006 à 10:02
0
Utile
merci pour cette précision jack ....
Bizzard mais chez moi le KeyCode=0 fonctionne !

Enfin, avec tout ca MOI4... va pouvoir faire ces propre test et voir ce qui marche le mieux pour lui !
tinux 246 Messages postés mercredi 13 avril 2005Date d'inscription 21 octobre 2013 Dernière intervention - 13 mai 2006 à 14:20
0
Utile
Je suis sous .NET et mon KeyUP fonctionne très bien ! Et c'est aussi du vb6.. mais sa je savais pas !
cs_moi4975 109 Messages postés lundi 27 juin 2005Date d'inscription 17 juillet 2007 Dernière intervention - 13 mai 2006 à 19:25
0
Utile
Merci à tout les deux mais après avoir essayer toute vos idées c'est finalement le KeyPress qui fonctionne le mieux (sans Beep) le keydown marche aussi mais j'ai toujours un Beep
cs_nico1610 402 Messages postés jeudi 26 août 2004Date d'inscription 19 juin 2009 Dernière intervention - 13 mai 2006 à 21:13
0
Utile
ok ... Jack avait raison ...
Sans rancune aucune Jack! ;)
anwar666 24 Messages postés jeudi 21 février 2008Date d'inscription 12 juillet 2010 Dernière intervention - 9 juil. 2009 à 23:10
0
Utile
salut !!
j'ai besoin  du code de l'événement enter qui effectue la recherche sur un textbox sans cliqué sur un bouton en vb.net 2008 !!!
et merci d'avance !!
cordialement !!

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.