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只有一个现实,会自动提到最前面!
我之前在在frm.show();前面写了这个。frm.MdiParent=this;//子窗体在父窗体内。然后加上你的代码就报错。去掉frm.MdiParent=this就可以运行。这个怎么弄
首先...
Frm 你知道是那个窗口吧..
在frm的构造函数里头写上
this.IsMdiChild = true;
就OK了...
你的做法是正确的.
貌似有很多种办法来实现吧!!!
定义一个公共变量,第一次打开一个子窗体,赋值为true,当关闭子窗体的时候,赋值为false
每次单击按钮,判断一下变量是否为true,如果为true就跳过;否则打开子窗体!!
那就使用单例模式, 有且只能弹出这个。