Форма откроется поверх другой формы, как модальное окно:
Открытие форм учитывая их положение:
Form1
Form2
C#:
private void button1_Click(object sender, EventArgs e)
{
Form ifrm = new Form2();
ifrm.ShowDialog();
}
Form1
C#:
private void button1_Click(object sender, EventArgs e)
{
Form ifrm = new Form2();
ifrm.Left = this.Left; // задаём открываемой форме позицию слева равную позиции текущей формы
ifrm.Top = this.Top; // задаём открываемой форме позицию сверху равную позиции текущей формы
ifrm.Show(); // отображаем Form2
this.Hide(); // скрываем Form1 (this - текущая форма)
}
C#:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
// вызываем главную форму, которая открыла текущую, главная форма всегда = 0 - [0]
Form ifrm = Application.OpenForms[0];
ifrm.StartPosition = FormStartPosition.Manual; // меняем параметр StartPosition у Form1, иначе она будет использовать тот, который у неё прописан в настройках и всегда будет открываться по центру экрана
ifrm.Left = this.Left; // задаём открываемой форме позицию слева равную позиции текущей формы
ifrm.Top = this.Top; // задаём открываемой форме позицию сверху равную позиции текущей формы
ifrm.Show(); // отображаем Form1
}