【程序设计】c#怎样判断当前子窗口已经打开

在form1里面有按钮1Form2f=newForm2();f.show();怎样在点击按钮1后判断是否Form2是否已经存在,如果不存在就新建一个,如果已经打开了一个F... 在form1里面有按钮1 Form2 f = new Form2();f.show();
怎样在点击按钮1后判断是否Form2是否已经存在,如果不存在就新建一个,如果已经打开了一个Form2子窗口,就把该子窗口调到最前面,并激活窗口
还有的是怎样把Form2绑定在Form1上面,让它不能移出Form1,就像Winrar解压的那个窗口一样
补充一下,你们的不行,我打开Form2然后关闭,就再打不开了;
二楼的我改了一下,就可以了
Form2 f2 = null;
private void button2_Click(object sender, EventArgs e)
{
if (f2 == null)///如果f2为空,第一次肯定为空
{
f2 = new Form2();///让f2引用f
f2.Show();///弹出这个窗口
}
else///如果这个窗口已经存在
{
try
{
f2.Show();
f2.Activate();///激活显示
}
catch (Exception)//如果窗口已关闭
{
f2 = new Form2();
f2.Show();
}
}
}
三楼和一楼一样的,你怎么把session改回来呢
四楼的太复杂了吧
展开
 我来答
乁Freedom
2009-07-27 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1396万
展开全部
Form2 f2 = null;///定义一个Form2的引用,一开始让他为空
private void 1_Click(object sender,EventArg e)///你的按钮
{
if(f2 == null)///如果f2为空,第一次肯定为空
{
Form2 f = new Form2();///实例一个f
f2 = f;///让f2引用f
f.Show();///弹出这个窗口
}
else///如果这个窗口已经存在
{
f2.Activate();///激活显示
}
}
百度网友94ee01a86
2009-07-29 · TA获得超过237个赞
知道答主
回答量:297
采纳率:0%
帮助的人:145万
展开全部
太多办法了。
灵活点应用。
设一个session

打开子窗口肯定会执行一个OPEN的动作是吧。这时候就把session改成1(原本可设置成0)
然后就判断这个session不就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaofzhs
2009-07-30 · TA获得超过752个赞
知道小有建树答主
回答量:534
采纳率:60%
帮助的人:251万
展开全部
namespace WindowsApplication1
{
public partial class Form2 : Form
{
static Form2 f = null;
private Form2()
{
InitializeComponent();
}

public static Form2 getForm2()
{
if (f == null)
f = new Form2();
return f;
}

private void Form2_Load(object sender, EventArgs e)
{

}
}
}
///////////////////////////////////
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
}

private void Form1_Load(object sender, EventArgs e)
{

Form2 f = Form2.getForm2();
f.ShowDialog();
}
}
}
经测试完全好用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
火沙
2009-07-27 · TA获得超过954个赞
知道小有建树答主
回答量:478
采纳率:0%
帮助的人:392万
展开全部
bool Opened = false;
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == f.Name)
{
frm.Activate();
frm.BringToFront();
Opened = true;
break;
}
}

if (!Opened)
{
f.Show();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式