2014-12-11 1 views
1

Как показать форму в максимизированном состоянии на том же мониторе, что и ее родитель?Как показать форму в максимизированном состоянии на том же мониторе, что и ее родитель?

Я попытался запустить следующие коды в системе двойного монитора:

using System.Windows.Forms; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form form2 = new Form(); 
     form2.StartPosition = FormStartPosition.CenterParent; 
     form2.WindowState = FormWindowState.Maximized; 
     form2.ShowDialog(); 
    } 

но form2 всегда отображается в основном мониторе, даже если его родитель на вторичном мониторе.

ответ

1

Укажите владельца (родителя), путем пропускания его ShowDialog():

form2.ShowDialog(this); 
+0

Спасибо! Но как это может измениться? В документе MSDN показано, что ShowDialog без параметра должен «Показывать форму как модальное диалоговое окно с текущим активным окном, установленным как его владелец». –

+0

Это хороший вопрос. Я взгляну на документы и посмотрю. –

+0

@ user54321 Да, глядя на код, он _should_ работает, не переходя в 'this'. Если вы не передаете значение, оно устанавливает текущее активное окно как владельца, как говорят документы. Я попробовал сам убедиться, и он работал, как ожидалось. Я не знаю, почему у вас была проблема. Это событие 'button1_Click' находится в коде для вашей формы? –

Смежные вопросы