vs2005 winform窗口问题
我建立了一个程序,包括父子窗口,点父窗口上的一个按钮打算出现一个子窗口,再点就不出现了。应该怎么写呢?...
我建立了一个程序,包括父子窗口,点父窗口上的一个按钮打算出现一个子窗口,再点就不出现了。应该怎么写呢?
展开
3个回答
展开全部
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;
}
}
但我指出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;
}
}
展开全部
恩.
定义一个全局的Bool类型的变量.
初始值为True
点了一次就为False
然后子窗口关闭的时候再重新设定为True
或者设置为模式窗体
使用ShowDialog.
子窗口弹出后
父窗体就点不了.
跟MessageBox是一样的效果.
额.
我是新人.
『静若处子』 正解!!
受益匪浅!
定义一个全局的Bool类型的变量.
初始值为True
点了一次就为False
然后子窗口关闭的时候再重新设定为True
或者设置为模式窗体
使用ShowDialog.
子窗口弹出后
父窗体就点不了.
跟MessageBox是一样的效果.
额.
我是新人.
『静若处子』 正解!!
受益匪浅!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的 无法有效的解决问题。
如果子窗体 允许最多出现两个, 那有该怎么解决呢?
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();
}
呵呵.....
相信楼主需要的是这个答案吧.....
如果子窗体 允许最多出现两个, 那有该怎么解决呢?
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();
}
呵呵.....
相信楼主需要的是这个答案吧.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询