Try setting the location of the new form to be equal to the first, existing form. Make sure that the second form's StartPosition property is set to 'Manual'. This assumes your forms are all the same sizes.
Example constructor of the 'floating' form:
// reference to the form underneath, as it might
// change location between creating the FloatingWindow, and showing
// FloatingWindow!
Form BeneathWindow;
public FloatingWindow(Form BeneathWindow)
{
InitializeComponent();
// save this for when we show the form
this.BeneathWindow = BeneathWindow;
StartPosition = FormStartPosition.Manual;
}
// OnLoad event handler
private void FloatingWindowLoad(object sender, EventArgs e)
{
Location = BeneathWindow.Location;
}
If your forms are not the same sizes, then you'll likely want to center them. You can use CenterParent as others have suggested, or you can manually center them yourself, as I sometimes like to do:
Location = new Point((BeneathWindow.Width - Width)/2 , (BeneathWindow.Height - Height)/2 );
Either should work!