public form1
{
....
if(err)
this.close();
....
}
也就是在窗口的构造函数中如果判断出一个错误来,那么就不显示这个窗口,直接关闭。但是实际上,在构造函数中的this.close()并没有起到作用。有什么其它的方式可以实现我这个想法?或者给个思路。
P.S. this.close()放在OnLoad里面似乎也关闭不了。
12 个解决方案
#1
不要在构造函数中调用this.close(),否则入口函数中的Application.Run将得到一个已经Disposed的对象:
在OnLoad中关闭窗口则没有问题:
当然还可以这样:
static void Main()
{
Form1 form1 = new Form1();
if( form1.InitOk == false )
{
Application.Run( form1 );
}
}
static void Main()
{
Application.Run(new Form1());
}
在OnLoad中关闭窗口则没有问题:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Close();
}
当然还可以这样:
static void Main()
{
Form1 form1 = new Form1();
if( form1.InitOk == false )
{
Application.Run( form1 );
}
}
#2
在OnLoad里关闭窗口或Application.Exit()退出
#3
应该在构造函数中throw Exception,此时没有创建窗体对象。
#4
在Load事件中可以用
this.close()
关闭窗口的。你再试试看。
this.close()
关闭窗口的。你再试试看。
#5
如果form1不是应用程序启动的主窗口,也就是说是应用程序启动后,通过某个事件激发(例如点击了一个菜单或者按钮等)后,才去显示form1的,那么建议这么做:
if(条件成立,就是没有发生错误)
{
form1 frm=new form1();
form1.show();
}
else
{
MessageBox.show(提示信息);
}
if(条件成立,就是没有发生错误)
{
form1 frm=new form1();
form1.show();
}
else
{
MessageBox.show(提示信息);
}
#6
up
#7
构造函数中Close会引发异常的。。
#8
构造函数中是不能关闭窗体的!
可以在LOAD事件中执行
可以在LOAD事件中执行
#9
顶
#10
你还是在构造函数中抛异常,或者你在这里返回值,在program.cs中进行判断是否运行form1
form1 form = new form1();
if(form1中判断条件==true)
{
Application.Run(form);
}
form1 form = new form1();
if(form1中判断条件==true)
{
Application.Run(form);
}
#11
楼上正解
#12
楼上正解
#1
不要在构造函数中调用this.close(),否则入口函数中的Application.Run将得到一个已经Disposed的对象:
在OnLoad中关闭窗口则没有问题:
当然还可以这样:
static void Main()
{
Form1 form1 = new Form1();
if( form1.InitOk == false )
{
Application.Run( form1 );
}
}
static void Main()
{
Application.Run(new Form1());
}
在OnLoad中关闭窗口则没有问题:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Close();
}
当然还可以这样:
static void Main()
{
Form1 form1 = new Form1();
if( form1.InitOk == false )
{
Application.Run( form1 );
}
}
#2
在OnLoad里关闭窗口或Application.Exit()退出
#3
应该在构造函数中throw Exception,此时没有创建窗体对象。
#4
在Load事件中可以用
this.close()
关闭窗口的。你再试试看。
this.close()
关闭窗口的。你再试试看。
#5
如果form1不是应用程序启动的主窗口,也就是说是应用程序启动后,通过某个事件激发(例如点击了一个菜单或者按钮等)后,才去显示form1的,那么建议这么做:
if(条件成立,就是没有发生错误)
{
form1 frm=new form1();
form1.show();
}
else
{
MessageBox.show(提示信息);
}
if(条件成立,就是没有发生错误)
{
form1 frm=new form1();
form1.show();
}
else
{
MessageBox.show(提示信息);
}
#6
up
#7
构造函数中Close会引发异常的。。
#8
构造函数中是不能关闭窗体的!
可以在LOAD事件中执行
可以在LOAD事件中执行
#9
顶
#10
你还是在构造函数中抛异常,或者你在这里返回值,在program.cs中进行判断是否运行form1
form1 form = new form1();
if(form1中判断条件==true)
{
Application.Run(form);
}
form1 form = new form1();
if(form1中判断条件==true)
{
Application.Run(form);
}
#11
楼上正解
#12
楼上正解