Valider une text_box

Résolu
PTuner - 20 avril 2013 à 22:30
 ucfoutu - 23 avril 2013 à 13:18
Bonjour
j'aimerai que dans mon sub text_reponse se trouve une condition qui indique que si l'utilisateur tape change ou changer puis enfonce la touché entrée pour valider la condition et passer au then, voilà est ce que quelqu'un connait une commande pour le faire?
 Private Sub txt_reponse_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_reponse.TextChanged
        If (Me.txt_reponse.Text "change") Or (Me.txt_reponse.Text "changer") Or (Me.txt_reponse.Text = "Change") Or (Me.txt_reponse.Text = "Changer") Then Call changement()
        If (Me.txt_reponse.Text "exit") Or (Me.txt_reponse.Text "quitter") Then Call arret()
    End Sub

33 réponses

Bonsoir PTuner.
Voici un petit bout de code dont vous pourriez peut-être vous inspirer,
Public Class Acceuil

    Private Sub tBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tBox.KeyDown
        If tBox.Text "Coucou" And e.KeyValue 13 Then tBox.Text = "" : MessageBox.Show("Salut")
    End Sub

End Class

sachant que tBox est un contrôle TextBox.

Cordialement.


Étant illettré, je signe d'une croix : ×
3
Utilisateur anonyme
21 avril 2013 à 00:39
Bonjour (Bonsoir) Zermelo,

Le gros problème que je vois dans son approche, c'est qu'il n'a rien mis pour se protéger des doigts baladeurs qui finissent tôt ou tard par produire des affaires du genre "CoUCOU", "CoucoU", "CoUcOu" et toutes les variations possibles. Et, lui, veut tester, avec ses deux lignes au moins quatre mots.

Le minimum qu'il devrait faire, serait de prendre son mot complet et de le mettre tout en majuscules (String.ToUpper), ou tout en minuscules (String.ToLower) avant de faire son test, et d'adapter son test en "COUCOU" ou en "coucou". Et encore là, il n'a rien pour traiter "Coucous", "Cocus", "Cocuous", "Concous", "Couscous" et toutes le fautes de frappe imaginables. À mon humble avis, si il veut absolument utiliser cette méthode, il n'est pas sorti du bois.

Mais bon, c'est lui qui décide.
3
Utilisateur anonyme
21 avril 2013 à 14:57
Bon, allez, une petite démonstration:

    Private Sub txt_reponse_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_reponse.TextChanged
        If txt_reponse.Text.ToUpper.Contains("CHANG") Then changement()
        If txt_reponse.Text.ToUpper.Contains("EXIT") Or txt_reponse.Text.ToUpper.Contains("QUITTER") Then arret()
    End Sub


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
3
Utilisateur anonyme
21 avril 2013 à 18:03
Ah ok...
Ma boule de cristal n'a plus de piles...

Pourquoi, dans ce cas, ne pas avoir exploité la piste de Zermelo?

    Private Sub txt_reponse_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txt_reponse.KeyUp
        If txt_reponse.Text.ToUpper.Contains("CHANGE") And e.KeyCode = 13 Then changement()
        If txt_reponse.Text.ToUpper.Contains("EXIT") Or txt_reponse.Text.ToUpper.Contains("QUITTER") And e.KeyCode = 13 Then arret()
    End Sub


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
3

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

Posez votre question
pour passer au then*
0
Utilisateur anonyme
20 avril 2013 à 23:19
Bonjour,

À première vue, l'événement TextChanged n'est probablement pas le plus indiqué, parce que TextChanged est déclenché chaque fois que tu entres un caractère. Pour ce que mon avis peut valoir; au lieu de prendre un textbox je prendrais deux RadioButtons sur un panel ou un frame. Comme de toutes façons tu va avoir obligatoirement un bouton à true et un à False et si tu cliques sur un, l'autre va changer automatiquement au besoin. Comme cela, pas besoin de faire attention à la casse de ce que tu écrirais dans un TextBox.
0
Bonjour cmarcotte.

S'il se trompe, tant mieux pour lui : c'est ainsi que l'on apprend.

Cordialement.


Étant illettré, je signe d'une croix : ×
0
je vois ce que tu veux dire cmarcotte mais mon programme n'est pas prévu pour des doigts "baladeurs" enfin bon s'il existe une solution pour contourner cette "faille" je suis preneur, autre chose le code de Zermelo n'est pas correctement déclaré dans le sub qu'il a donné en fait l'écoute(handless) tbox requiert un variable with events qui n'est apparemment pas déclaré.
0
Utilisateur anonyme
21 avril 2013 à 14:46
Bonjour,
une solution pour contourner cette "faille"


La solution Cmarcotte te l'as déjà envoyée (String.ToUpper)

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Bonjour PTuner.
J'ai bien précisé qu'il s'agit d'un petit bout de code dont vous pourriez peut-être vous inspirer. Ce qui signifie que vous pourriez l'adapter à vos besoins. Je ne vous ai pas donné une solution, cela ne serait pas conforme au règlement de ce forum. Je vous ai suggéré une piste.

Étant illettré, je signe d'une croix : ×
0
oui en effet ce bout de code fonctionne bien je vous remercie.
0
j'ai essayé ça mais ça ne fonctionne pas non plus
Private Sub txt_reponse_TextChanged(ByVal sender As System.Object, ByVal e As Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If txt_reponse.Text.ToUpper.Contains("CHANGE") And e.KeyCode = Keys.Enter Then changement()
        If txt_reponse.Text.ToUpper.Contains("EXIT") And e.KeyCode Keys.Enter Or txt_reponse.Text.ToUpper.Contains("QUITTER") And e.KeyCode Keys.Enter Then arret()
    End Sub
0
pardon c'est pas keydown mais keypress masi celui-ci n'est pas compatible avec toupper.
0
Utilisateur anonyme
21 avril 2013 à 17:42
Re:
Je sais qu'il fonctionne mais:

1) As-tu au moins compris le code? (car sur ce forum c'est le but)
As-tu compris ce que c'est "ToUpper" et "Contains"?

2) Si la réponse te convient pourquoi pas libérer la discussion et cocher "réponse acceptée" afin que les autre utilisateurs sachent qu'il y a une ou des bonne(s) réponse(s) à ta question?


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
toupper = le plus haut(Retourne une copie de cette chaîne convertie en majuscules)contains = contient
non je viens de relire l'erreur ce n'est pas toupper qui pose problème
voici le problème:
Error 1 Method 'Public Sub txt_reponse_TextChanged(sender As Object, e As System.Windows.Forms.KeyEventArgs)' cannot handle event 'Public Event KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs)' because they do not have a compatible signature. C:\Users\Pierre\Documents\Visual Studio 2010\Projects\Testwindows\Testwindows\Form1.vb 29 121 Testwindows
0
d'après ce que j'ai compris le sub txt_réponse ne peut pas "écouter" public event keypress car leur signatures ne sont pas compatibles.
0
Utilisateur anonyme
21 avril 2013 à 17:53
Bon...
- Il faut déjà revoir ta notion de "comptabilité"
- Egalement la notion de la logique de "And" et "Or"
- Que vient faire ici le "KeyDown"???


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
en fait pour moi ça fait
If txt_reponse.Text.ToUpper.Contains("CHANGE") And e.KeyCode = Keys.Enter Then changement()
si txt_reponse contient le texte CHANGE et qu'on appuie sur entrée alors il appelle le sub changement
0
je l'ai corrigé en keypress
0
C'était trop simple.


Étant illettré, je signe d'une croix : ×
0
Rejoignez-nous