this.Close() 或 this.Dispose()时 都会出错:
"执行 CreateHandle() 时无法调用值 Dispose()"
"执行 CreateHandle() 时无法调用值 Close()"
因为在OnLoad事件中,当前窗体的句柄Handle还没有创建完成
所以不能直接进行关闭操作,变通的实现方法如下:
protected override void OnVisibleChanged(EventArgs e)
{
base.OnVisibleChanged(e);
if (条件)
this.Close();
}
也可以重写 OnShown 或者在 Shown 事件响应中写。
Form加载的时候,第一步执行构造函数,第二步就执行Load,然后会执行一些别的事件,例如OnVisibleChanged,OnShown
只要在Load之后的事件中执行close就可以了
选择在哪个事件中必须注意这些事件的执行时间和顺序