Valider une text_box [Résolu]

Signaler
-
 ucfoutu -
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 : ×

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.

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

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
pour passer au then*

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.
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 : ×
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é.

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
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 : ×
oui en effet ce bout de code fonctionne bien je vous remercie.
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
pardon c'est pas keydown mais keypress masi celui-ci n'est pas compatible avec toupper.

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
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
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.

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
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
je l'ai corrigé en keypress
C'était trop simple.


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