Question

j'utilise flowLayoutPanel pour avoir des contrôles de localisation relatifs. Je voudrais changer l'emplacement du contrôle à l'intérieur du flowLayoutPanel. Quand je dis l'emplacement, je ne veux pas dire Control1 avant le contrôle2 ou quelque chose comme ça - je veux dire que si j'ai 2 contrôles, disons label et comboBox - la comboBoxLa hauteur de 21 ans est de 21, le labelLa hauteur de 13 ans est de 13 et le flowLayoutPanelLa hauteur de 21 est également de 21. Je veux mettre le label au milieu vertical du flowLayoutPanel - ((21-13) / 2) de haut. Je ne veux pas quelque chose de spécifique pour le milieu vertical Je veux une solution générale.

Était-ce utile?

La solution

Vous pouvez également définir la marge supérieure de l'étiquette (ContainerHeight-LabelHeight) / 2

Autres conseils

La disposition du flux ne va pas aider: elle organise simplement toutes les commandes dans une liste, ajustant leur position pour s'adapter au panneau. Vous pouvez créer des sous-groupes en mettant des commandes dans une table dans la disposition du flux, ou simplement utiliser une table pour un contrôle maximal.

    int cIndex = this.FlowLayoutPanel1.Controls.GetChildIndex(Button1);
    int bIndex = this.FlowLayoutPanel1.Controls.GetChildIndex(Button1);

    this.FlowLayoutPanel1.Controls.SetChildIndex(Button1, bIndex);
    this.FlowLayoutPanel1.Controls.SetChildIndex(Button2, cIndex);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top