У меня есть два диалоговых окна, FormA
и FormB
.Я использую следующий код, чтобы показать (немодально) FormB
.Код представляет собой нажатие кнопки, выполненное из FormA
.
private void button_Click(object sender, EventArgs e)
{
FormB fB = new FormB();
fB.Show(this); // FormA is the owner of FormB
}
. Проблема в том, что когда FormB
превышает FormA
на экране, если я нажимаю FormA
, он активируется, ноне выведен на фронт.На самом деле FormB всегда находится над FormA

Знаете ли вы, почему и как изменить это поведение, не удаляя свойство владельца?
ПРИМЕЧАНИЕ: Это упрощение моей проблемы.В реальной проблеме FormA - это окно Windows Explorer, а FormB - управляемая WinForm, но поведение такое же.Если я не передаю IWin32Window на Show()
, он работает нормально, но если я закрываю A, B не закрывается и не отвечает на события (см. Следующую запись ).