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

怎样在打开一个子窗体后再按button不再弹出同样的窗体!求详细代码。... 怎样在打开一个子窗体后再按button不再弹出同样的窗体!求详细代码。 展开
 我来答
IcebeareM
2013-04-08 · TA获得超过660个赞
知道小有建树答主
回答量:1235
采纳率:0%
帮助的人:359万
展开全部
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就可以运行。这个怎么弄
追答
这个没用过,呵呵,我一般控制窗口就直接用 Form fm =  就可以了!
Ben
2013-04-08 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

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

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

就OK了...
你的做法是正确的.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友770eb8bca
2013-04-08 · TA获得超过240个赞
知道小有建树答主
回答量:647
采纳率:50%
帮助的人:230万
展开全部
貌似有很多种办法来实现吧!!!
定义一个公共变量,第一次打开一个子窗体,赋值为true,当关闭子窗体的时候,赋值为false
每次单击按钮,判断一下变量是否为true,如果为true就跳过;否则打开子窗体!!
追问
新手,求代码,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5567224
2013-04-17 · TA获得超过122个赞
知道答主
回答量:23
采纳率:0%
帮助的人:6.8万
展开全部
那就使用单例模式, 有且只能弹出这个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式