В форме, вызывающей вторую форму, у меня есть этот код:
this.WindowState = FormWindowState.Minimized;
frmCalledForm frm = new frmCalledForm();
frm.Show();
this.WindowState = FormWindowState.Normal;
И в Load()
событии frmCalledForm
this.TopMost = true;
this.BringToFront();
this.Activate();
у меня есть код, вызывающий вторую форму в событии нажатия кнопки, и в какой-то момент я открываю его программно на основе определенных условий.
В обоих случаях вызываемая форма не получает фокус, вызывающая форма сохраняет фокус, даже если она свернута и затем возвращается в нормальное состояние.
Я нашел указанный выше код в этом вопросе SO , и, по-видимому, он работает для него, но по какой-то причине он не работает для меня.
Из-за Комментарий Криса о возврате вызывающей формы в нормальное состояние, я закомментировал эту строку, но оставил строку, минимизируя вызывающую форму.
Помимо того факта, что для пользователя основная форма внезапно исчезнет на его панели задач и оставайтесь там, что явно не способствует хорошему пользовательскому опыту. Но когда я запустил программу с измененным кодом, основная форма перешла на панель задач, а вызванная форма открылась, но по-прежнему не имеет фокуса . Я был очень удивлен, увидев это.