【程序设计】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改回来呢
四楼的太复杂了吧 展开
怎样在点击按钮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改回来呢
四楼的太复杂了吧 展开
展开全部
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();///激活显示
}
}
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();///激活显示
}
}
展开全部
太多办法了。
灵活点应用。
设一个session
打开子窗口肯定会执行一个OPEN的动作是吧。这时候就把session改成1(原本可设置成0)
然后就判断这个session不就可以了。
灵活点应用。
设一个session
打开子窗口肯定会执行一个OPEN的动作是吧。这时候就把session改成1(原本可设置成0)
然后就判断这个session不就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
}
}
经测试完全好用。
{
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();
}
}
}
经测试完全好用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == f.Name)
{
frm.Activate();
frm.BringToFront();
Opened = true;
break;
}
}
if (!Opened)
{
f.Show();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询