Whichever one is added first will be on top.
Here's where your confusion lies.... BringToFront is not a property, it's a method of the designer. When you use the designer and you right click on a control and select BringToFront, you're not really setting any property, you're changing the order in which the controls are added to the form. BringToFront moves the addition of that specific control to the top of the list, adding that control first, while SendToBack moves the addition of the control, via the this.Controls.Add method to the bottom of the list.
The answer is to add your controls to your form in order, from the foremost control to the backmost control.
this.Controls.Add(button);
this.Controls.Add(label);
The above two calls will ensure the button resides above the label. If those two lines were reversed, the label would reside on top of the button.
David Morton -
http://blog.davemorton.net/ -
@davidmmorton