winform中如何避免点击同一个按钮打开多次相同的窗体? 10

我已经解决了点击同一个按钮打开多次相同的窗体问题,现在的问题是当该窗体关闭后,就不能再打开了,代码是这样写的privatevoidtoolStripButton1_Cli... 我已经解决了点击同一个按钮打开多次相同的窗体问题,现在的问题是当该窗体关闭后,就不能再打开了,代码是这样写的private void toolStripButton1_Click(object sender, EventArgs e)
{
if (p == null)
{
p = new PrenatalVisit();
p.MdiParent = this;
p.TopMost = true;
p.Show();
}
else
{
MessageBox.Show("此窗体已打开");
}
}
请各位高手帮助帮助
展开
 我来答
yk北极星
2011-11-10 · 超过18用户采纳过TA的回答
知道答主
回答量:80
采纳率:100%
帮助的人:21.6万
展开全部
没有释放掉上次的资源,关闭后手动的,close或disponed
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心语NET
2011-11-10 · TA获得超过227个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:210万
展开全部
在窗体关闭时 p = null;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友27e0ce116
2011-11-10 · TA获得超过684个赞
知道答主
回答量:89
采纳率:0%
帮助的人:62.9万
展开全部
关键是你的变量P 是怎么定义的!? 你可以考虑一下 窗体关闭时把变量P 清空一下! 如果还是不行 你追问一下 我给你个完整的
追问
p是直接在窗体后台里面直接定义的,比如窗体名字是Form1吧,private static Form1 p=new Form1();
追答
我知道了 
private void toolStripButton1_Click(object sender, EventArgs e)
{
if (p == null)
{
p = new PrenatalVisit();
p.MdiParent = this;
p.TopMost = true;
p.Show();
//关键
p=null;
}
else
{
MessageBox.Show("此窗体已打开");
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gongchengjia
2011-11-10 · TA获得超过130个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:128万
展开全部
p.ShowDialog();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式