I played around a little with this.
In the call:
this.Controls.AddRange(new System.Windows.Forms.Control[]
{
this.button1,
this.dataGrid1,
this.label1,
this.label4,
this.trackBar1});
the components are added to the frame in the order listed from front to back. That is - button1 is in front, trackBar1 is in the back.
This may not be very elegant but you could try using the CopyTo method to copy the existing Controls array, rearrange the elements externally, Controls.Clear and then add back the controls with Controls.AddRange.
---
dino