How to control docking order in WinForms

前端 未结 8 890
独厮守ぢ
独厮守ぢ 2020-12-25 09:20

As the title states, I\'m looking for a way to control the order in which the items dock to the top of my control.

I\'ve played with the windows form designer, and

相关标签:
8条回答
  • 2020-12-25 09:46

    The order in which the controls are being added to the Controls collection determines the docking order.

    0 讨论(0)
  • 2020-12-25 09:49

    (For the sake matter of showing another option): In Visual Studio 2012 (and later):

    1. Select the Control you want to Move to the Front (or back);
    2. Click in the below marked buttons (Bring to Front / Send to Back);

    This will give you the possibility to rearrange the Controls to your desired order.

    0 讨论(0)
  • 2020-12-25 09:51

    Go to View → Other windows → document outline.

    In that window drag the controls so the docking is as you like it to be.

    0 讨论(0)
  • 2020-12-25 09:57

    Note that when doing this programmatically, then there's a very easy way to achieve this, namely:

    containerPanel.Controls.SetChildIndex(Element, 0); //sends element to the bottom of the list
    
    0 讨论(0)
  • 2020-12-25 09:58

    As you said, the newest control added to the controls collection is the one on top. If you need a newer control to be added at the bottom, I'll suggest to create a list of controls, add the controls to the list, reverse the list and add the list to the controls collection.

    List<Control> controls = new List<Control();
    controls.Add(new myFirstControl());
    controls.Add(new mySecondControl());
    controls.Reverse();
    this.Controls.AddRange(controls.ToArray());
    
    0 讨论(0)
  • 2020-12-25 09:59

    Use these methods:

    myControl.SendToBack();
    myControl.BringToFront();
    
    0 讨论(0)
提交回复
热议问题