Попробуйте установить местоположение новой формы равным первой существующей форме. Убедитесь, что свойство StartPosition второй формы установлено на «Ручной». Это предполагает, что все ваши формы одинакового размера .
Пример конструктора «плавающей» формы:
// 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;
}
Если ваши формы не одинакового размера , то вы, вероятно, захотите отцентрировать их. Вы можете использовать CenterParent, как предлагали другие, или вы можете вручную центрировать их самостоятельно, как мне иногда нравится делать:
Location = new Point((BeneathWindow.Width - Width)/2 , (BeneathWindow.Height - Height)/2 );
Либо должно работать!