开幕式和闭幕式

时间:2016-10-07 14:00:25

标签: c# .net winforms

我有三种表单mainFormLoginFormAdminForm。单击mainForm上的菜单项时,它会打开LoginForm(使用ShowDialog)。我想在正确提供登录详细信息时打开AdminForm,但不想关闭mainForm

Loginform上使用此代码打开AdminForm

this.Hide();
AdminForm adminform = new AdminForm();
adminform.ShowDialog();
this.Close();

它的作用是,分别显示adminForm。主要表单重点突出,我希望adminForm显示为mainForm上的对话框,就像从LoginForm打开MainForm一样。

3 个答案:

答案 0 :(得分:2)

AdminForm关闭后,您必须在MainForm显示LoginForm。您可以使用LoginForm.DialogResultMainForm发信号通知登录是否成功。

// in LoginForm, when login is successful:
this.DialogResult = DialogResult.OK;

// in MainForm:
LoginForm lf = new LoginForm();
DialogResult r = lf.ShowDialog(this);
if (r == DialogResult.OK)
{
    AdminForm adminform = new AdminForm();
    adminform.ShowDialog(this);
}

答案 1 :(得分:0)

使用ShowDialog时,您需要传入父表单。 所以你应该做loginForm.ShowDialog(this),然后你可以做adminForm.ShowDialog(所有者)。

答案 2 :(得分:0)

如果您想在当前表单中显示管理表单,这应该有效。 您无法在自己的表单中显示对话框,但Show应该可以正常工作

this.IsMdiContainer = true;
AdminForm adminform = new AdminForm();
adminform.MdiParent = this;
adminform.Show();