我有三种表单mainForm
,LoginForm
和AdminForm
。单击mainForm
上的菜单项时,它会打开LoginForm
(使用ShowDialog
)。我想在正确提供登录详细信息时打开AdminForm
,但不想关闭mainForm
。
在Loginform
上使用此代码打开AdminForm
this.Hide();
AdminForm adminform = new AdminForm();
adminform.ShowDialog();
this.Close();
它的作用是,分别显示adminForm
。主要表单重点突出,我希望adminForm
显示为mainForm
上的对话框,就像从LoginForm
打开MainForm
一样。
答案 0 :(得分:2)
AdminForm
关闭后,您必须在MainForm
显示LoginForm
。您可以使用LoginForm.DialogResult
向MainForm
发信号通知登录是否成功。
// 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();