CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C#] Comment valider mes textbox?

Oleee
Oleee
Niveau 44
29 septembre 2015 à 17:17:06

Bon voila j'ai une form pour l'inscription, et je veux quand je clique sur "Confirmer", vérifier si :

- Mes textboxes sont pas vides
-Mes textbox sont valides ( j'utiliserai des fonctions que j'ai créer pour ca)

Je veux qu'il y ai un message affichés pour chaque cas spécifique, par exemple "Erreur, veuillez entrer votre password", ou "Votre password n'est pas valide!". J'ai crée des labels avec tout ces msg d'erreurs et je les afficherai pour chaque cas.

Le problème c'est que je veux que pour chaque textbox, je puisse vérifier si elle soit valide soit vide. Si par exemple, je clique sur confirmer, et que j'ai laissé 2 textbox vides et 2 dont l'entrée est non valide, j'aurais les 4 labels avec les messages correspondants qui s'affichent.

J'ai essayé un truc de ce style, mais ca marchera pas, étant donné qu'il s'arretera au 1er textbox qui n'est pas valide et passera au else et ignorera les autres texbox qu'ils soient valide ou non. Et aussi ca ne permet pas de vérifier si CHAQUE textbox est laissé vide ou non :(

if (isValid(textbox1) {
                   if (isValid(textbox2) {
                         if (isValid(textbox3) {
                                        .........
                           }
                             else { ....... }
                      else {......}
                else {.....}

Je veux faire ca avec des if, ca parait très facile, mais je trouve pas comment faire pour gérer tout les cas et afficher tout les messages d"erreurs. Le problème avec les ifs c'est que gère qu'un seul cas :(

Peut etre que j'y ai pas assez pensé, ca fais longtemps que j'ai pas pratiqué d'algorithmie :(

GrandeGuerre
GrandeGuerre
Niveau 11
29 septembre 2015 à 17:27:55

Alors déjà, un truc qui me choque, c'est que tu oublies systématiquement une parenthèse.
Tu écris :
if (isValid(textbox){....}

Alors que tu ne fermes pas ton if, comme ceci :
if (isValid(textbox)){...}

Ensuite, tu ferais certainement mieux de tester le texte de ta textbox (via textbox.Text). Tu as moyen de vérifier si elle est vide grâce à :
string.IsNullOrEmpty(textbox.Text)

Du genre, à vue de pif, je ferais un machin de ce genre :


// Si tout est rempli correctement....
if (!string.IsNullOrEmpty(textbox1.Text) && !string.IsNullOrEmpty(...))
{
      // ton code
}

// Si y'a une erreur
else
{
       // if imbriqués
}

Après, je le fais de tête, y'a peut-être des inexactides ou des améliorations à apporter.

EDIT: Correction, c'est bien "IsNullOrEmpty" et pas "IsNotNullOrEmpty".

Message édité le 29 septembre 2015 à 17:30:40 par GrandeGuerre
Oleee
Oleee
Niveau 44
29 septembre 2015 à 17:35:01

Merci pour ta réponse.

Pour la paranthèse oublié, c'est juste une erreur inattention vu que j'ai tapé le code ici a la va vite.

Je teste bien le Text de mes textbox, mais le problème que je rencontre, c'est qu'en utilisant les if imbriqués, je ne pourrais pas gérer tout les cas d'erreur. Je suppose que tu voulais dire que je devais tester chaque textbox avec des if imbriqués. Imagine qu'aucun des textbox ne soit valide, le programme ne passera pas le 1er if (isValid(textbox1)) et passera directement au else qui affichera le message d'erreur pour le premier textbox. Tout les autres textbox, bien que non valides, seront ignorés et aucun msg d'erreur ne sera affiché !

Je sais pas si je me suis bien fais comprendre :(

GrandeGuerre
GrandeGuerre
Niveau 11
29 septembre 2015 à 17:43:04

Alors à ce moment, autant faire un test systématique sans faire de if imbriqués (ce qui me semble plus performant ou, du moins, plus lisible). Genre tu ferais une méthode qui ferait la vérification.

Du style :


if (!isValid(textbox1))
       // afficher erreur
if (!isValid(textbox2))
       // afficher erreur
.....

private bool isValid(textbox tbx)
{
       bool bOk = false;

       if (!string.IsNullOrEmpty(tbx.Text)
       {
              // ton code si c'est rempli correctement
              // ou un complétement de test...
              bOk = true;
       }

       return bOk;
}
Oleee
Oleee
Niveau 44
29 septembre 2015 à 18:28:50

Si j'utilise que des if qui s'enchainent sans else, ils seront tous testés quelque soit le résultat du premier c'est bien ca?

C'est ce que je cherchais en fait :noel:

Si c'est ca j'avais complètement que ca existait les if sans else, je dois vraiment revoir l'algorithmique
:noel:

Merci :ok:

Message édité le 29 septembre 2015 à 18:29:13 par Oleee
Chocolayte
Chocolayte
Niveau 73
29 septembre 2015 à 18:49:17

Ah ok, je comprends mieux ton enchevêtrement de if/else. :noel:

GrandeGuerre
GrandeGuerre
Niveau 11
29 septembre 2015 à 19:46:18

Ahah, oui c'est tout à fait possible. :hap:

Je t'en prie, j'aurai pu me rendre utile aujourd'hui. :cool:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment