Compter le nombre de composant dans un formulaire

Résolu
LordOfTheShadow Messages postés 174 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 9 septembre 2010 - 25 nov. 2008 à 09:12
LordOfTheShadow Messages postés 174 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 9 septembre 2010 - 29 janv. 2009 à 15:28
Bonjour j'aimerai connaître le nombre de controls (ex: bouton ou autres) que contient mon form. Comment puis-je faire? j'ai déjà vu des trucs du genre components.Count() mais ça me met des erreurs... Et si c'est possible de connaître le nombre de composants de tel ou tel type...(bouton, label, etc...)

La connaissance est la plus grande des richesses.

7 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
25 nov. 2008 à 11:09
Bonjour,


Pourquoi faire une boucle pour compter les contrôles ?


Tu peux tout aussi bien obtenir le même résultat avec le code suivant:
int nb = this.Controls.Count;


Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
25 nov. 2008 à 09:55
Salut,

Il faut faire un parcours recursif

En te basant sur
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.haschildren.aspx

Bon coding
0
LordOfTheShadow Messages postés 174 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 9 septembre 2010 5
25 nov. 2008 à 10:20
Merci ça marche.
Voici l'adaptation du code:

int

nbComps=0;

if (
this.HasChildren)
{

      foreach (
Control childControl
in
this.Controls)
      {
            nbComps++;
      }
}

MessageBox.Show(
"Il y a : " + nbComps.ToString() +
" composants");

La connaissance est la plus grande des richesses.
0
xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
25 nov. 2008 à 11:51
Salut,
Il faut compter aussi les enfants des contrôles conteneurs, dont il faut passer par une fonction récursive.
Si une Form contient par exemple un GroupBox (qui contient 2 Buttons) et un Panel (qui contient 2 Buttons):
Le résultat 2 au lieu 6.
A+
0

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

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
25 nov. 2008 à 14:44
Oui, tout dépend de ce qu'on veut compter.
Mais euh... à quoi peut servir une telle fonction ?

<hr />
-Blog-
-Site Perso-
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
25 nov. 2008 à 15:10
Pour s'endormir plus vite ???
y'a bien des personnes qui comptent les moutons...

Désolé,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
0
LordOfTheShadow Messages postés 174 Date d'inscription vendredi 22 décembre 2000 Statut Membre Dernière intervention 9 septembre 2010 5
29 janv. 2009 à 15:28
Heyyyy! je compte pas les motons lol. non je remplis un datagridview avec une propriété présente sur chacun des composants que j'ai créé donc je suis obligé de passer par là :-) heu par contre ca marche avec les controls  et usercontrols mais pas avec les components. Il y aurait-il une solution?

La connaissance est la plus grande des richesses.
0
Rejoignez-nous