Comment contrôler l’ordre d’ancrage dans WinForms

Comme le titre l’indique, je cherche un moyen de contrôler l’ordre dans lequel les éléments sont placés en haut de mon contrôle.

J’ai joué avec le concepteur de formulaire Windows, et je RightClick->Order->SendToFront pas à trouver ce que fait RightClick->Order->SendToFront , car c’est exactement ce que je veux faire. Pour autant que je puisse arriver, à mesure que j’ajoute mon contenu à mon contrôle, le contenu le plus récent est toujours en haut, et j’aimerais que le contenu le plus récent soit en bas, et que le contenu le plus ancien se trouve au début. Haut.

Résumé: Existe t-il un moyen simple dans WinForms (C #) de contrôler l’ordre dans lequel les éléments s’ancrent sur les côtés des contrôles?

Edit: Je dois le faire à partir du code derrière lorsque j’ajoute mes contrôles, je ne peux pas utiliser les fonctionnalités du concepteur de WinForm, mais ce que j’essaie de faire, c’est d’imiter les fonctionnalités SendToBack et SendToFront WinForms Designer

Utilisez ces méthodes:

 myControl.SendToBack(); myControl.BringToFront(); 

Accédez à Affichage -> Autres fenêtres -> Contour du document.

Dans cette fenêtre, faites glisser les commandes afin que la connexion soit comme vous le souhaitez.

Comme vous l’avez dit, le contrôle le plus récent ajouté à la collection de contrôles est celui du dessus. Si vous avez besoin d’un nouveau contrôle à append en bas, je vous suggère de créer une liste de contrôles, d’append les contrôles à la liste, d’inverser la liste et d’append la liste à la collection de contrôles.

 List controls = new List 

Un contrôle a deux méthodes pour obtenir ce que vous recherchez: BringToFront et SendToBack .

L’ordre dans lequel les contrôles sont ajoutés à la collection Controls détermine l’ordre d’ancrage.

(Par souci d’affichage d’une autre option): Dans Visual Studio 2012 (et versions ultérieures):

  1. Sélectionnez le contrôle que vous souhaitez déplacer vers l’avant (ou vers l’arrière);
  2. Cliquez sur les boutons marqués ci-dessous (Bring to Front / Send to Back); entrer la description de l'image ici

Cela vous donnera la possibilité de réorganiser les contrôles à l’ordre souhaité.

Utilisez le FlowLayoutPanel, il fait exactement ce que vous voulez.