2009-10-20 8 views
0

Je suis dans une situation où je veux ajouter des commandes d'utilisateur dans un panneau. Cela doit être dans un ordre topdown.Stackpanel avec largeur définie pour remplir?

J'ai fait ce qui est expliqué here pour le faire agir comme un panneau de pile. Cependant, je souhaite que la largeur de chaque commande utilisateur remplisse le panneau et ne soit pas de taille fixe. J'ai essayé d'utiliser tablelayoutpanel et de l'augmenter pour ajouter des lignes, mais comme je suis dans une situation avec plus d'espace, la hauteur n'est pas toujours constante car elle veut remplir la dernière ligne.

Répondre

1

Vous pouvez toujours utiliser le TableLayoutPanel.

Pour ajouter des contrôles, vous pouvez utiliser le TableLayoutPanel.Add(Control, int, int) pour spécifier le contrôle, la ligne et la colonne dans lesquels vous souhaitez l'insérer (dans votre cas, la colonne sera toujours 0). Vous pouvez ajouter des lignes en modifiant la propriété TableLayoutPanel.RowCount. Vous définissez la propriété Control.Anchor sur chaque commande que vous ajoutez il étendra à la largeur de la TableLayoutPanel:

Button b = new Button(); 
b.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; 
tableLayoutPanel1.Add(b, 0, 0); 

AnchorStyles.Top l'empêche de stretching à la hauteur de la ligne entière.

Ceci est juste un aperçu rudimentaire, mais vous devriez être en mesure de trouver comment le faire fonctionner pour vous à partir de cette information, ainsi que le MSDN page for TableLayoutPanel.

+0

Merci! Ça m'a aidé –

Questions connexes