Форма не открывается как активное окно

У меня есть основная форма 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()

И затем вы должны добавить проверку в форму входа, если она закрыта без аутентификации пользователя, она должна закрыть все приложение, или, в качестве альтернативы, вы можете скрыть строку заголовка.

Другие вопросы по тегам