Откройте MDIparent из входа

У меня есть это в моей кнопке LOGIN Form

this.Close();
MDIParent1 mdi = new MDIParent1();
mdi.Show();

Но родитель MDI не открывается.


person Square Ponge    schedule 25.07.2013    source источник
comment
Код после this.Close() думаю, он туда не доходит   -  person V4Vendetta    schedule 25.07.2013
comment


Ответы (3)


Вместо этого используйте hide

    MDIParent1 mdi = new MDIParent1();
    mdi.Show();
    this.Hide();

ИЗМЕНИТЬ:

Другое решение, в вашем Program.cs, не используйте Application.Run(new LoginForm());

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        LoginForm lf = new LoginForm();
        lf.Show();

        Application.Run();
    }

Затем вы можете использовать

    Application.Run(new MDIParent1());
    this.Close();
person Community    schedule 25.07.2013

Вы закрываете форму входа, и она не может открыть форму mdi.

Уловка, которую мы использовали пару раз, заключается в том, чтобы сначала открыть основную форму, а затем позволить ей открыть форму входа. Если авторизация не удалась, не закрывайте форму авторизации. В закрывающем аргументе формы входа завершите приложение.

Не уверен, что это применимо к форме MDI, так как я не уверен, что вы можете открыть модальную форму поверх родителя MDI.

person Louis van Tonder    schedule 25.07.2013

Откройте окно MDIParent при запуске и откройте окно входа оттуда (в OnLoad, например, с ShowDialog).

В случае неудачной авторизации вы можете выйти из приложения. Если вход в систему выполнен успешно, вы можете продолжить работу со своим MDIParent.

person Koen    schedule 25.07.2013