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

Résolu
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 26 oct. 2006 à 13:50
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015 - 27 oct. 2006 à 13:06
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

Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
26 oct. 2006 à 14:23
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).
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
26 oct. 2006 à 13:58
Salut,
Pourquoi ne pas utiliser le FlowLayoutPanel ou éventuellement le TableLayoutPanel ?

<hr size="2" />-Blog-
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
26 oct. 2006 à 17:47
Rhalalala, si y'a des objects, c'est pour les utiliser hein

<hr size="2" />-Blog-
0
babe59 Messages postés 189 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 27 novembre 2015
27 oct. 2006 à 13:06
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
0
Rejoignez-nous