IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB .NET] Type TextBox


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Par défaut [VB .NET] Type TextBox
    Bonjour tout le monde, je suis entrain de developper une petite application pour mon stage de 2e année d'iut.

    Je travaille avec Visual Studio .net 2003, et j'aimerais savoir s'il est possible que dans mon formulaire je puisse imposer le type de retour d'un textBox, imposer par exemple en un type Date ou Integer ou encore Double.

    J'ai cherché dans les propriétés du TextBox mais comme c'est tout en anglais j'ai pas tout compris donc si quelqu'un peut m'aider ca faciliterai ma tache.


    Merci d'avance

  2. #2
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    Il faut vérifier le format des données saisies dans tes textbox, par exemple si tu veux vérifier que les utilisateurs ont bien saisii une date, tu peux utiliser isdate, si tu veux savoir si il ont bien saisie un integer tu peux utiliser isnumeric

    isdate :

    http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vblr7/html/vafctisdate.asp

    isnumeric :

    http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vblr7/html/vafctisnumeric.asp

  3. #3
    Membre Expert
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Par défaut
    Le textbox n'est pas "spécialisé", de base tu ne peux pas contrôler le type de ce qui est saisi.
    Il faut donc coder pour obtenir l'effet désiré. Les façons de faire sont nombreuses :
    - tester caractère par caractère lors de la saisie et accepter seulement 0..9 et"/" (mais au final c'est pas forcément un date valide, donc juste un guide de saisie)
    - lors de la validation de la saisie utiliser Convert pour tester le type (si la conversion échoue la saisie est mauvaise, afficher alors un message par ex, et rendre le focus au composant textbox)
    - utiliser une expression régulière pour tester la saisie soit à la fin, soit en cours de saisie
    - créer un user control qui intègre ces fonctionnalités s'il y a besoin de plusieurs zones de saisies spécialisées dans l'appli,
    etc..

    Par exemple pour n'accepter que les integer en programmant l'evenement KeyPress du Textbox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void textboxInteger_KeyPress(object sender, 
         System.Windows.Forms.KeyPressEventArgs e)
    { 
         if (!Char.IsDigit(e.KeyChar) && e.KeyChar !=(char)8)
        { 
            this.statusBar1.Text="incorrect key..."; // message d'erreur
            e.Handled=true; // input is not passed on to the control(TextBox) 
        } else 
                this.statusBar1.Text="OK.."; 
    }
    une autre façon, par exemple pour tester la validité d'une zone email (le même principe peut être utilisé pour les dates ou autre) en utilisant l'évenement Validating et une expression régulière :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    private void textboxEmail_Validating(object sender, 
                   System.ComponentModel.CancelEventArgs e)
    {
        Regex emailregex = new Regex("(?[^@]+)@(?.+)"); 
        Match mmatch = emailregex.Match(this.textboxEmail.Text);
        if ( mmatch.Success ) 
       { 
           MessageBox.Show("UserName: " + 
              mmatch.Groups["user"].Value+"\n"+"HostName: " + 
              mmatch.Groups["host"].Value,"E-Mail Information"); 
          this.statusBar1.Text=""; //efface barre de statut
       } 
      else 
      {
         MessageBox.Show("invalid e-mail address...","E-Mail Information"); 
         e.Cancel=true; // ne pas quitter la saisie pour la corriger 
       } 
    }

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Par contre si tu ne veux que des nombres dans ta TextBox utilise un NumericUpDown c'est beaucoup plus facile a gerer et en plus ya pas mal d'options.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Par défaut Re: [VB .NET] Type TextBox
    Citation Envoyé par Skunk007
    J'ai cherché dans les propriétés du TextBox mais comme c'est tout en anglais j'ai pas tout compris
    C'est tout en français ici : TextBox sur MSDN

    Une remarque sur la validation des entrées :
    On peut filtrer les caractères lors de la frappe mais pas juger de la validité de la saisie.
    Il faut obligatoirement le faire à la validation (quand la saisie est complète) car la plupart du temps, les saisies partielles ne sont pas valides.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Par défaut
    Merci j'ai reussi grace a un CType pour faire les conversions et un Isnumeric et un Isdate pour verifier.

Discussions similaires

  1. [vs.net]curseur Textbox
    Par stgi02 dans le forum Visual Studio
    Réponses: 4
    Dernier message: 06/03/2010, 22h21
  2. [VB.NET] Type Incompatible
    Par Cyrilange dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/11/2009, 20h08
  3. [Vb.net] Heritage ? TextBox PasswordChar
    Par troxsa dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/04/2006, 18h15
  4. [VB.net CF] Textbox pour du numérique
    Par WriteLN dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/09/2005, 09h38
  5. [VB.NET] Repeater & textbox
    Par Sadneth dans le forum ASP.NET
    Réponses: 7
    Dernier message: 26/09/2005, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo