Il y a quelque temps, j'ai posté this question sur essayer d'obtenir un panneau de flowlayout pour autosize correctement lorsqu'il est ancré au sommet d'un conteneur. Ce que j'essayais d'accomplir consistait à installer un panneau de flux horizontal (de gauche à droite) couvrant le bord supérieur d'un formulaire, et une vue de données de données occupant le reste de l'espace disponible sous le panneau de configuration de flux. J'avais de la difficulté à obtenir la propriété height de flowlayoutpanel pour qu'elle s'autosise comme elle le devrait. La réponse affichée fonctionnait parfaitement pour ce que j'essayais d'accomplir, ce qui était génial ...WinForms UserControl Layout Problèmes de mise en page automatique
Incapable de s'en sortir tout seul, j'essaie maintenant d'aller un peu plus loin et d'envelopper le panneau flowlayout dans un UserControl. J'ai découvert, cependant, qu'ainsi le flowlayoutpanel ne peut plus redimensionner correctement sa hauteur.
est ici la première mise en page, qui fonctionne à merveille:
FlowLayoutPanel1 (Autosize = true, Dock = Top)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)
Et voilà avec FlowLayoutPanel enveloppé dans un UserControl:
UserControl (Autosize = true, Dock = Top)
FlowLayoutPanel1 (Autosizse = true, Dock = Fill)
ComboBox1
ComboBox2
ComboBox3
DataGridView1 (Dock = Fill)
Pour une raison quelconque, FlowLayoutPanel ne redimensionne pas sa hauteur correctement lorsque le formulaire est redimensionné C'est assez facile à reproduire. Oh aussi, le contenu de FlowLayoutPanel peut être n'importe quoi, pas seulement les ComboBox.
Cela fonctionne presque. L'événement Resize fonctionne parfaitement, mais je dois redimensionner le formulaire pour déclencher l'événement Resize. Je voudrais que cet ajustement de taille se produise lorsque le formulaire est initialement affiché, pas seulement après qu'il a été redimensionné. J'ai essayé les événements UserControl.Load, Layout, VisibleChanged et Paint sans succès. – echo
Je remarque qu'il y a un événement FlowLayoutPanel.SizeChanged, peut-être que j'essaie? Je ne suis pas près d'une machine avec VS mis en place donc je ne peux pas jouer avec moi-même. Vous pouvez également essayer l'événement FlowLayoutPanel.ControlAdded –
SizeChanged a fait l'affaire. Merci – echo