打开一个窗体时引入另一个窗体
本帖最后由 foxd 于 2013-03-09 16:06:51 编辑
我在form1中用了以下代码,在打开Login窗口时把fmain窗体引入,
frmMain fmain = new frmMain();
fmain.Show();
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
this.Hide();
现在我在fmain窗体中用了以下代码,以便打开frmLogin窗口:
string frmName = "frmLogin";
Type typeForm = Type.GetType("Weighing." + frmName); //Weighing是当前窗体的命名空间
Form subForm = Activator.CreateInstance(typeForm) as Form;
......
this.workPanel.Controls.Add(subForm);
subForm.Show();
我需要在打开frmLogin窗体时引入fmain窗体,但不会写,请帮我修改一下,谢谢!
------解决方案-------------------- Application.Run(new frmLogin());
登陆之后点击确定的时候show frmMain
------解决方案--------------------晕!
你可以为frmMain声明一个属性,例如
public frmLogin theForm{get;set;}
然后再你的所谓form1中写:
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
frmMain fmain = new frmMain();
fmain.theForm = Login;
fmain.Show();
this.Hide();
------解决方案--------------------不过,这里的this.Hide是很诡异的。通常你应该在逻辑设计上做到位,例如
frmLogin Login = new frmLogin(fmain);
Login.ShowDialog();
frmMain fmain = new frmMain();
fmain.Closed += (s,e) => this.Close();
fmain.theForm = Login;
fmain.Show();
this.Hide();
这样才能保证将诡异的窗口能够变成不诡异的。