Форма не открывается как активное окно
У меня есть основная форма MDI в моем приложении и форма входа в систему. Я открываю свое приложение, как это. Я хочу открыть имя входа как активную форму, в которой пользователь не сможет щелкнуть элемент управления родительской формы MDI, пока форма входа в систему открыта. Я открываю свою форму входа в систему в форме MDI.
Form newLogin = new FormControllers.FrmLogin();
newLogin.StartPosition = FormStartPosition.CenterScreen;
newLogin.Show(this);
newLogin.Focus();
newLogin.TopMost = true;
newLogin.Activate();
Тогда это код, который я использовал в моей форме входа в систему:
public void activateParent()
{
if (this.Owner != null)
{
this.Owner.Enabled = true;
}
}
private void FrmLogin_Activated(object sender, EventArgs e)
{
if (this.Owner != null)
{
this.Owner.Enabled = false;
}
}
private void FrmLogin_Deactivate(object sender, EventArgs e)
{
activateParent();
}
private void FrmLogin_FormClosing(object sender, FormClosingEventArgs e)
{
activateParent();
}
Еще при запуске программы открывается форма входа в систему, но не как активная форма. Сразу после запуска моей программы мои контроллеры MDI-форм становятся доступны.
Мой MDI main отключается, только когда я нажимаю на форму входа. Я хочу преодолеть это.
Я хочу, чтобы моя форма MDI была отключена, а форма входа активирована.
Как этого добиться?
1 ответ
Используйте ShowDialog() вместо Show().
Например
newLogin.ShowDialog()
И затем вы должны добавить проверку в форму входа, если она закрыта без аутентификации пользователя, она должна закрыть все приложение, или, в качестве альтернативы, вы можете скрыть строку заголовка.