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

C# Discussion :

Compter le nombre de textbox dans un formulaire (winform)


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 73
    Par défaut Compter le nombre de textbox dans un formulaire (winform)
    Hello tous le monde :-)


    Ma question est la suivante :


    J'ai X TextBox dans mon formulaire et j'aimerais connaitre ce nombre. En effet, il peut être dynamique et par conséquent, je ne peux pas me baser sur un constante.


    Exemple:

    idTextBox, nomLivreTextBox, genreTextBox. (ca fait 3 mais si j'en ajoute un, j'aimerais que ma méthode (fonction) me le renvoie :-))


    Dans un formulaire que j'ai appellé Blivres.

    Tout ceci ce fait dans un Winform (demande du prof)

    Toutes vos réponses sont les bienvenues

    Merci

  2. #2
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonjour,

    il y a deux solution :

    La première c'est uniquement les Textboxes contenues directement dans le formulaire, cad pas les controls enfants (pourquoi pas?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            public static int GetTextBoxCount(Control pControl)
            {
                if (pControl.HasChildren)
                     return pControl.Controls.OfType<TextBox>().Count();
                return 0;
            }
    la deuxième, c'est toutes les textboxes, même celles contenues dans les controls enfants(ex : GroupBoxes, panels...), c'est mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            public static int GetTextBoxCountRecursive(Control pControl)
            {
                int retour = 0;
                if (pControl.HasChildren)
                    foreach (Control item in pControl.Controls)
                    {
                        if (item is TextBox)
                            retour++;
                        if (item.HasChildren)
                            retour += GetTextBoxNumber(item);
                    }
                return retour;
            }
    Bon dév.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 73
    Par défaut
    Merci pour ta réponse, je les ai testé mais il ne reconnait pas ceci :

    .OfType<TextBox>().Count();

    et cette fonction : GetTextBoxNumber(item);

    je suppose qu'elle depends de la premiere ?

  4. #4
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Non pas du tout, c'est pas la première, c'est une récursive (erreur en modifiant le nom de la fonction):
    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static int GetTextBoxCountRecursive(Control pControl)
            {
                int retour = 0;
                if (pControl.HasChildren)
                    foreach (Control item in pControl.Controls)
                    {
                        if (item is TextBox)
                            retour++;
                        if (item.HasChildren)
                            retour += GetTextBoxCountRecursive(item);
                    }
                return retour;
            }
    Pour le OfType, tu est en framework 2 (Visual studio 2005)? Bref, c'est Linq.
    Fais comme ça alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static int GetTextBoxCount(Control pControl)
            {
                int retour = 0;
                if (pControl.HasChildren)
                    foreach (Control item in pControl.Controls)
                    {
                        if (item is TextBox)
                            retour++;
                    }
                return retour;
            }

  5. #5
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    pour le OfType, regarde si tu as :

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 73
    Par défaut
    Ca marche nickel à present.


    Je travaille sous VS 2010

    Merci !

  7. #7
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    je n'ai pas sécurisé le code, mais il faut toujours vérifier que le paramètre qu'on t'envoie n'est pas null... C'est une bonne pratique à avoir.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 73
    Par défaut
    oui effectivement, tu as raison. C'est ce que je fais justement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter le nombre de champs dans un formulaire dynamique.
    Par rpgmax dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/02/2008, 15h12
  2. Compter le Nombre de case dans un formulaires
    Par Percevan dans le forum IHM
    Réponses: 10
    Dernier message: 13/09/2007, 14h12
  3. Réponses: 6
    Dernier message: 11/02/2005, 06h41
  4. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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