如何判断一个窗体是否打开?急.....
我在窗体A按钮Button1上加上如下语句,实现打开B窗体
B b=new B(this);
if (b == null || b.IsDisposed)
{
b.Show();
}
else
{
b.Focus();
}
现在点击Button1怎么都无法打开B窗体,请问是什么原因?
------解决方案--------------------你采用的是什么结构MDI?
new实例时有错
------解决方案--------------------在主窗体frmMain的初始化中定义一个公共变量(boolean)isdoing,并设置为false,
然后再添加这样的代码
if(not isdoing)
{
ss.show();
isdoing=true;
}
在ss中的Closed事件中写上这样一个代码
frmMain.isdoing=false;
------解决方案--------------------你可以做一个全局变量,第一次可以打开B窗口.并对全局变量赋值.在点那个按钮时判断那个全局变量.在B窗口关闭时也要修改全局变量.
------解决方案--------------------当你new B 时,窗体就使新建的一个窗体,b==null和b.IsDisposed都是假的,所以就只执行b.Focus
,可是这时你窗体还没有show出来,所以就看不到了。试着在b.Focus前加上b.Show()试一下
------解决方案--------------------if (f2.IsDisposed)
{
f2 = new Form2();
}
f2.Show();
------解决方案--------------------Form2 f2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
if (f2.IsDisposed)
{
f2 = new Form2();
}
f2.Show();
}
快给我分吧
------解决方案--------------------B b = null;
private void button1_Click(object sender, EventArgs e)
{
if (b == null || b.IsDisposed)
{
b= new B(this);
b.Show();
}
else
{
b.Active();
}
}
------解决方案--------------------B b=new B(this);
你在这里创建了一个B的实例b,但是没有Show();此时if条件为false,走else分支,你没有Show就b.Focus();当然不会出现
你这样写if条件语句一点意义都没有,可以按我上面的方法来写
------解决方案--------------------朝 失误了
给lxcnn(过客)吧
------解决方案--------------------学习..