How to control docking order in WinForms

Go to View → Other windows → document outline.

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


Use these methods:

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

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());

A control has two methods to achieve what you are looking for: BringToFront and SendToBack.