winform中两个窗体的问题

xiaoquan56 2009-08-03 04:10:47
我在窗体A中加入按钮,此按钮单击调出窗体B,但是我每次单击窗体A的时候就蹦出窗体B,我点多少次他就出来多少个

个人明白用ShowDialog();可以实现 我想的是在主窗体下面创建窗体B而不是重新打开一个新的;

个人用的方法是
frm_Buybalance_Add frm_Buy_Add = new frm_Buybalance_Add();
IntPtr fbl = this.Handle;
frm_Buy_Add.show(fbl);

就是不知道什么解决点一次按钮出现一个B窗体

想要的结果是点了按钮后如果再次去点按钮出来的也是最开始点按钮时出来的那个窗体
那位能帮帮我?

...全文
69 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsj_zrp 2009-08-04
  • 打赏
  • 举报
回复
用单件模式
简单点的:
Form1中:
private static Form1 _instance;
public static Form1 Instance()
{
if (_instance == null)
_instance = new Form1();
else
_instance.Activate();
return _instance;
}

protected override void OnClosing(CancelEventArgs e)
{
_instance = null;
base.OnClosing(e);

}

Form2中生成Form1的时候:
Form1 frm=Form1.Instance();
frm.Show();
fwqkey 2009-08-04
  • 打赏
  • 举报
回复
每次点的时候判断下子窗体有没有打开.
xiaoquan56 2009-08-04
  • 打赏
  • 举报
回复
我这样做还有一个问题 就是在父窗体上如果打开了子窗体,回到父窗体上点按钮 按钮等于是死的了
我是点父窗体的按钮的时候原先打开的子窗体能给我弹跳出来
yidichaxiang 2009-08-04
  • 打赏
  • 举报
回复
帮顶
wolf1118baby 2009-08-04
  • 打赏
  • 举报
回复
让窗体一次实例,在没有Dispose()就不在新建。
libolei 2009-08-03
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
bool AShowForm2 = false;

foreach(Form f in this.MdiChildren)
{
if (f.Name.Equals("aa"))
{
AShowForm2 = true;
break;
}
}
if (AShowForm2)
{
return;
}
Form2 fa = new Form2();
fa.Name = "aa";
fa.MdiParent = this;
fa.Show();
}

嘎嘎
xiaoquan56 2009-08-03
  • 打赏
  • 举报
回复
小弟不才 没看懂
peterb 2009-08-03
  • 打赏
  • 举报
回复

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧