Tengo un sistema en el que la forma principal es el menú, y aparece un formulario de acceso en el cargamento. Originalmente se carga el formulario de usuario abajo el menú, así que utiliza this.topmost = true para hacer que viene en la parte delantera. (como traer al frente y enviar hacia atrás no funcionó)Formulario de acceso no perder el foco correctamente
Sin embargo, si el usuario hace clic en algo más, por ejemplo, en cromo, sigue estando en la parte superior del orden z, por definición de más arriba.
Intenté utilizar el evento de desactivación, pero esto significaba que al cargarlo nuevamente aparece detrás del formulario del menú.
¿Cómo puedo evitar que se cargue detrás de mi formulario de menú y, sin embargo, cuando pierde el foco, deja de ser el más alto?
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;
}
En el formulario Menú:
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
}
Gracias mucho, trabajó al instante! Cheers –
Me alegro de ser de ayuda. –