У меня есть это в моей кнопке LOGIN Form
this.Close();
MDIParent1 mdi = new MDIParent1();
mdi.Show();
Но родитель MDI не открывается.
У меня есть это в моей кнопке LOGIN Form
this.Close();
MDIParent1 mdi = new MDIParent1();
mdi.Show();
Но родитель MDI не открывается.
Вместо этого используйте 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();
Вы закрываете форму входа, и она не может открыть форму mdi.
Уловка, которую мы использовали пару раз, заключается в том, чтобы сначала открыть основную форму, а затем позволить ей открыть форму входа. Если авторизация не удалась, не закрывайте форму авторизации. В закрывающем аргументе формы входа завершите приложение.
Не уверен, что это применимо к форме MDI, так как я не уверен, что вы можете открыть модальную форму поверх родителя MDI.
Откройте окно MDIParent при запуске и откройте окно входа оттуда (в OnLoad
, например, с ShowDialog
).
В случае неудачной авторизации вы можете выйти из приложения. Если вход в систему выполнен успешно, вы можете продолжить работу со своим MDIParent.
this.Close()
думаю, он туда не доходит - person V4Vendetta   schedule 25.07.2013