Méthode générique pour centrer des controles

[Résolu]
Signaler
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015
-
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015
-
Bonjour

j'essaye d'écrire une méthode pour centrer (horizontal) les contrôles de ma form. J'aimerai que cette méthode soit générique : c'est à dire que je récupère et modifie le Location.X de l'objet passé en paramétre.

publicstaticvoid CenterHorizontalControl(object objAcentrer, object conteneur)
{
   Int32 WidthControl = ((System.Windows.Forms.CheckBox)objAcentrer).Size.Width 
   Int32 widthConteneur = ((System.Windows.Forms.Form)objAcentrer).Size.Width 

   ...
}

En fait, j'aimerai ne pas caster explicitement l'objet  Ca donnerait quelque chose du style => 
   Int32 WidthControl = ((xx)objAcentrer).Size.Width 
   Int32 widthConteneur = ((xx)objAcentrer).Size.Width 
où xx n'est pas clairement explicité

Merci

DT

4 réponses

Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
10
La base commune a tous les controles est ... la classe Control.
Il te suffit donc de remplacer ton cast (xx) en cast (Control) (qui possède les propriétés dont tu as besoin pour faire tes calculs).
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Salut,
Pourquoi ne pas utiliser le FlowLayoutPanel ou éventuellement le TableLayoutPanel ?

<hr size="2" />-Blog-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
Rhalalala, si y'a des objects, c'est pour les utiliser hein

<hr size="2" />-Blog-
Messages postés
189
Date d'inscription
vendredi 28 mai 2004
Statut
Membre
Dernière intervention
27 novembre 2015

Bonjour Bidou,
J'utilise TableLayoutPanel pour positionner mes contrôles mais dans le cas ci-dessus, c'est pour par exemple centrer le label général de la form, je n'ai pas envie d'utiliser un tableLayoutPanel pour cela... mais j'ai peu être tort ... c'est sans doute une question d'habitude avec d'ancien langage.
Slts
 

DT