vs2005 winform窗口问题

我建立了一个程序,包括父子窗口,点父窗口上的一个按钮打算出现一个子窗口,再点就不出现了。应该怎么写呢?... 我建立了一个程序,包括父子窗口,点父窗口上的一个按钮打算出现一个子窗口,再点就不出现了。应该怎么写呢? 展开
 我来答
xiao4623581
2009-05-26 · 超过10用户采纳过TA的回答
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
2楼的为正解!
但我指出2楼的一点小错误 O(∩_∩)O~
首先,在遍历所有打开的窗体时,当发现打开的窗体中有没有子窗体Form2这种情况你得考虑
即:
bool find=false;
foreach(Form j in Application.OpenForm) //历遍所有打开的窗体。
{
if(j is Form2) //如果打开的窗体中有子窗体 Form2
{
find=true;
MessageBox.Show("子窗体已经打开");
break;//反正已找出,没有再遍历下去的必要了!
}
else //如果打开的窗体中没有子窗体 Form2
{
find=false;
}
}
呼星腾7N
2009-05-27 · TA获得超过1986个赞
知道小有建树答主
回答量:1988
采纳率:0%
帮助的人:1172万
展开全部
恩.

定义一个全局的Bool类型的变量.

初始值为True

点了一次就为False

然后子窗口关闭的时候再重新设定为True

或者设置为模式窗体

使用ShowDialog.

子窗口弹出后

父窗体就点不了.

跟MessageBox是一样的效果.

额.

我是新人.

『静若处子』 正解!!

受益匪浅!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友130561a
2009-05-25 · TA获得超过380个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:174万
展开全部
楼上的 无法有效的解决问题。
如果子窗体 允许最多出现两个, 那有该怎么解决呢?

bool find=false;
foreach(Form j in Application.OpenForm) //历遍所有打开的窗体。
{
if(j is Form2) //如果打开的窗体中有 子窗体 Form2
{
find=true;
MessageBox.Show("子窗体已经打开");
}

}

if(!find) //如果在打开的窗体中没有 Form2
{
Form2 f2=new Form2();
f2.Show();
}

呵呵.....
相信楼主需要的是这个答案吧.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式