The order of the controls in your form depends on the order you have added those controls to the form. The earlier added control will be on top, then the second one and so on. The controls have Z-index as well which indicates the paint order (elements with higher Zindex are painted over the elements with a lower one). The dock layout is based on the order they are added to the form. If you want to rearrange the controls in your form you can go the *.Designer.cs file and modify the InitializeComponent method to manually re-order how the controls are added to the form.
Another possible solution I can suggest is to do it at run time in the code. You can use of SetChildIndex or BringToFront methods: