c#中,父窗体上有button,单击button弹出子窗体,然后单击这个button又弹出一个同样的

2024-12-13 09:57:54
推荐回答(4个)
回答1:

form1:
public static Form fm = null;
private void button1_Click(object sender, EventArgs e)
{
if (fm == null)
{
Form2 fm2 = new Form2();
fm2.Show();
}
else
{
fm.TopLevel = true;
}
}

form2:
private void Form2_Load(object sender, EventArgs e)
{
Form1.fm = this;
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Form1.fm = null;
}

这样form1下的按钮不管怎么点form2只有一个现实,会自动提到最前面!

回答2:

我之前在在frm.show();前面写了这个。frm.MdiParent=this;//子窗体在父窗体内。然后加上你的代码就报错。去掉frm.MdiParent=this就可以运行。这个怎么弄

首先...
Frm 你知道是那个窗口吧..
在frm的构造函数里头写上
this.IsMdiChild = true;

就OK了...
你的做法是正确的.

回答3:

貌似有很多种办法来实现吧!!!
定义一个公共变量,第一次打开一个子窗体,赋值为true,当关闭子窗体的时候,赋值为false
每次单击按钮,判断一下变量是否为true,如果为true就跳过;否则打开子窗体!!

回答4:

那就使用单例模式, 有且只能弹出这个。