2009-09-25 9 views
2

Alors que je peux facilement accomplir dans ASP.NET en utilisant AddAt(), j'essaie de faire la même chose dans Windows Forms.Comment ajouter des contrôles Windows Forms créés dynamiquement?

J'ai un panneau, et tandis que je peux faire un pnlMyPanel.Controls.Add (ctl) ... il l'insère toujours dans la position 0, quand je préfère l'avoir ajouté à la fin, ou pnlMyPanel.Controls .Compter. Est-ce que je suis en train de négliger une méthode ou est-ce que je vais devoir faire autre chose?

Répondre

1

Cela dépend de la façon dont les commandes sont configurées.

Je suppose que toutes les commandes du panneau ont leur propriété Dock définie. Si oui, appelez BringToFront, SendToBack, ou SetChildIndex sur le nouveau contrôle après l'avoir ajouté au panneau.

Sinon, définissez les propriétés Top et Left (ou la propriété Location) du nouveau contrôle.

+0

C'est correct ... Je suis en train d'accoster. – mattruma

+0

Ensuite, vous voulez appeler 'BringToFront' après avoir ajouté le contrôle. – SLaks

+0

Le BringToFront a fonctionné parfaitement! – mattruma

1

fonctionnalité Addat peut être mis en œuvre par une combinaison de Ajouter et setChildIndex méthodes.

Vous pouvez utiliser

SetChildIndex Method

pour réordonner l'indice du contrôle des enfants après avoir ajouté le contrôle des enfants.

Lorsque setChildIndex est appelé, le contrôle visé par l'enfant paramètre est déplacé vers la position spécifiée par newIndex et les autres références de contrôle dans le contrôle .. ::. ControlCollection sont réorganisés à accueillir le déménagement. Le contrôle avec une valeur d'index de zéro est en haut de l'ordre z, et les nombres supérieurs sont plus proches du bas.

Questions connexes