C# WinForm中,如何判断窗口已打开

有两个windows窗体,在窗体1中,增加一个按钮,点击按钮,f.show()弹出另一个窗体2,假如我把窗体2最小化,然后再点击窗体1中的按钮,如何实现以下功能:1.无论点多少次窗体1的按钮,窗体2只能打开一个2.当窗体2已经打开了,再点击窗体1的按钮时,窗体2激活,并显示于最前面。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form2 f;
private void button1_Click(object sender, EventArgs e)
{

if (f == null) //如果子窗体为空则创造实例 并显示
{
f = new Form2();
f.StartPosition = FormStartPosition.CenterScreen;//子窗体居中显示
f.Show();

}
else
{
if (f.IsDisposed)//若子窗体关闭 则打开新子窗体 并显示
{
f = new Form2();
f.StartPosition = FormStartPosition.CenterScreen;//子窗体居中显示
f.Show();
}
else {
f.Activate(); //使子窗体获得焦点
}
}
} }
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-22
教你一个做简单的办法,,就是声明一个公共类型的静态的变量来保存窗体的是否打开状态;;比如public static bool isOpenOrClose;在form1的按钮单击事件里面打开form2的时候,,让isOpenOrClose=true;把打开form2的代码放在if块中if(isOpenOrClose==false){ form2 f2 =new form2(); f2.show();} 在form2的 窗体关闭时间里面,,因为form1中的isOpenOrClose是静态的所以赋值为 form1.isOpenOrClose=false;这样当form2关闭的时候就把isOpenOrClose的值设为了false。。,这样再点击foem1的按钮时候又可以重新打开了。
第2个回答  2013-06-22
如果是窗体的话,你自己可以弄个标识来标记此窗口是否已打开。如果是程序的话,你可以在打开前(Program类的main方法)判断是否已经运行了此程序的进程,如果已经运行了,就直接调用关闭当前程序(Environment.Exit(0);)就得了
第3个回答  2013-06-22
有两个窗口Form1和Form2,其中Form1为主窗口(启动窗口),Form1中添加一个按钮button1,button1单击事件代码如下:
第4个回答  2013-06-22
你可以写个事件电按扭的时候就隐藏掉之前的窗口再SHOW一个窗口

C# WinForm中,如何判断窗口已打开
可以利用下面代码判断窗口是否打开,如果打开返回true private bool CheckFormIsOpen(string formName){ bool bResult = false;foreach (Form frm in Application.OpenForms){ if (frm.Name == formName){ bResult = true;break;} } return bResult;} ...

C# WinForm中,如何判断窗口已打开?
\\x0d\\x0af.StartPosition=FormStartPosition.CenterScreen;\/\/子窗体居中显示\\x0d\\x0af.Show();\\x0d\\x0a\\x0d\\x0a}\\x0d\\x0aelse\\x0d\\x0a{\\x0d\\x0aif(f.IsDisposed)\/\/若子窗体关闭则打开新子窗体并显示\\x0d\\x0a{\\x0d\\x0af=newForm2();\\x0d\\x0af.StartPosition=FormStart...

c# winform 判断窗口是否打开
MessageBox.Show("已经启动了一个程序,请先退出!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);Application.Exit();} 把上面这段代码放到program.cs的main函数中

C# WinForm中,如何判断窗口已打开
if (f.IsDisposed)\/\/若子窗体关闭 则打开新子窗体 并显示 { f = new Form2();f.StartPosition = FormStartPosition.CenterScreen;\/\/子窗体居中显示 f.Show();} else { f.Activate(); \/\/使子窗体获得焦点 } } } }

C# Winform 如何获取窗体打开状态?
用单例模式 private static FrmCallOut instance;public static FrmCallOut GetInstance(){ if (instance == null){ instance = new FrmCallOut();} return instance;}

C#:在Winform中,如何使用C#代码判断一个指定的服务(Service)是否处于开 ...
使用 ServiceController.GetServices("***") 获取需要检测的服务(注意返回是一个数组)使用 services[0].Status == ServiceControllerStatus.Running 来判断服务状态。如果需要多次进行判断记得刷新后再判断,如下: services[0].Refresh();

你好,请问你的"c# winForm开发中,实现弹出新窗口,旧窗口停止一切活动...
MessageBox.Show ("测试") \/\/这样主窗体就不能操作了 Form1 frm=new Form1 ()frm.ShowDialog() '有模式打开窗体

c# winform中mdi子窗体激活问题
1、判断子窗体是否被打开 public bool checkchildFrmExist(string childFrmName){ foreach (Form childFrm in this.MdiChildren){ if (childFrm.Text.ToString() == childFrmName){ if (childFrm.WindowState == FormWindowState.Minimized){ childFrm.WindowState = FormWindowState.Normal;} childFrm....

C#winform判断子窗口是否已关闭或在关闭的时候触发事件
private void MainForm_FormClosing(object sender, FormClosingEventArgs e){ if (MessageBox.Show(this, "确认关闭?","提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK){ ArrayList alist = new ArrayList();alist.Add("newCODDemo.exe");alist.Add("newCODDemo....

C#中在一个窗体中点击弹出另一个窗体,同时关闭本窗体
点击按钮后this.Hide();new Form2().Show();隐藏后要让他显示的话 再次调用控件的Show()方法就好了

相似回答