Valider TextBox

Résolu
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007 - 12 mai 2006 à 17:33
anwar666 Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 12 juillet 2010 - 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

17 réponses

cs_nico1610 Messages postés 395 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 19 juin 2009 1
13 mai 2006 à 01:48
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é !
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2006 à 18:12
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
0
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007
12 mai 2006 à 18:18
Ca ne fonctionne pas, quand je pousse enter j'ai un Beep.

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

Jer
0

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

Posez votre question
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007
12 mai 2006 à 18:31
la propriété default n'existe pas pour un textbox
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
12 mai 2006 à 18:46
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à !
0
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007
12 mai 2006 à 18:51
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 ???
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2006 à 19:14
... 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
0
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007
12 mai 2006 à 19:18
c'est du VB6 et je n'ai pas de command avec la propriété default = true sur ma form
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
12 mai 2006 à 19:32
Ok et pas non plus de KeyUP ==> .NET
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mai 2006 à 00:33
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mai 2006 à 04:43
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
0
cs_nico1610 Messages postés 395 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 19 juin 2009 1
13 mai 2006 à 10:02
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 !
0
tinux Messages postés 244 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 21 octobre 2013
13 mai 2006 à 14:20
Je suis sous .NET et mon KeyUP fonctionne très bien ! Et c'est aussi du vb6.. mais sa je savais pas !
0
cs_moi4975 Messages postés 109 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 17 juillet 2007
13 mai 2006 à 19:25
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
0
cs_nico1610 Messages postés 395 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 19 juin 2009 1
13 mai 2006 à 21:13
ok ... Jack avait raison ...
Sans rancune aucune Jack! ;)
0
anwar666 Messages postés 24 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 12 juillet 2010
9 juil. 2009 à 23:10
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 !!
0
Rejoignez-nous