首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

打开一个窗体时引出另一个窗体

2013-03-14 
打开一个窗体时引入另一个窗体本帖最后由 foxd 于 2013-03-09 16:06:51 编辑我在form1中用了以下代码,在打

打开一个窗体时引入另一个窗体
本帖最后由 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();
这样才能保证将诡异的窗口能够变成不诡异的。

热点排行