Compter le nombre de composant dans un formulaire [Résolu]

Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
Dernière intervention
9 septembre 2010
- - Dernière réponse : LordOfTheShadow
Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
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.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
3
Merci
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
---------------------

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de billou_13
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
0
Merci
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
Commenter la réponse de nhervagault
Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
Dernière intervention
9 septembre 2010
0
Merci
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.
Commenter la réponse de LordOfTheShadow
Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Dernière intervention
26 décembre 2011
0
Merci
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+
Commenter la réponse de xmox667
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
Oui, tout dépend de ce qu'on veut compter.
Mais euh... à quoi peut servir une telle fonction ?

<hr />
-Blog-
-Site Perso-
Commenter la réponse de cs_Bidou
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Dernière intervention
19 août 2014
0
Merci
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
---------------------
Commenter la réponse de billou_13
Messages postés
175
Date d'inscription
vendredi 22 décembre 2000
Dernière intervention
9 septembre 2010
0
Merci
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.
Commenter la réponse de LordOfTheShadow

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.