У меня есть система, в которой основной формой является меню, и при загрузке выскакивает форма входа в систему.Первоначально он загружал форму входа под меню, поэтому я использовал this.topmost = true, чтобы сделать его первым.(так как перенос на передний план и отправка на задний план не сработали)
Однако, если пользователь затем нажимает на что-то еще, скажем, на хром, то он по-прежнему остается на вершине z-порядка по определению topmost.
Я пытался использовать событие деактивации, но это означало, что при загрузке оно снова появляется за формой меню.
Как я могу остановить загрузку за формой моего меню, и все же, когда оно теряет фокус, не дать ему стать верхним?
private void login_Deactivate(object sender, EventArgs e)
{
// do not want it to remain top most when the application is not in focus.
this.TopMost = false;
}
В форме меню:
private void Menu_Load(object sender, EventArgs e)
{
openLogin()
}
private void openLogin()
{
Cursor.Current = Cursors.WaitCursor;
login theForm = new login(this);
this.Enabled = false;
theForm.Show();
Cursor.Current = Cursors.Default;
theForm.Activate();
theForm.TopMost = true; // Make the login form display over the Menu
}