我有2个表格.从我创建的一个表单中显示另一个表单.它工作得很好.但是当我尝试从创建它的表单中关闭或处理该表单时,我得到以下异常:
Exception : Value Dispose() cannot be called while doing CreateHandle(). Stack Trace : ======================== at System.Windows.Forms.Control.Dispose(Boolean disposing) at System.Windows.Forms.Label.Dispose(Boolean disposing) at System.ComponentModel.Component.Dispose() at System.Windows.Forms.Control.Dispose(Boolean disposing) at System.Windows.Forms.ContainerControl.Dispose(Boolean disposing) at System.Windows.Forms.Form.Dispose(Boolean disposing) at Speedometer_Application.frmSpeedometer.Dispose(Boolean disposing)
任何的想法????
Sam*_*ore 17
Value Close() cannot be called while doing CreateHandle()
当我们尝试在构造函数或Load事件中关闭表单时,通常会发生错误.
例如,以下代码给出错误:
private void frmCustomer_Load(object sender, EventArgs e)
{
if (!Valid())
this.Close;
}
Run Code Online (Sandbox Code Playgroud)
解决方案:
private void frmCustomer_Load(object sender, EventArgs e)
{
if (!Valid())
this.BeginInvoke(new MethodInvoker(Close));
}
Run Code Online (Sandbox Code Playgroud)
您可以在代码中使用它.
代码如下:
if (frmMain.objfrm== null)
{
frmMain.objfrm = frmMyForm.Instance;
frmMain.objfrm.ShowInTaskbar = false;
}
frmMain.objfrm.Show();
frmMain.objfrm.BringToFront();
Run Code Online (Sandbox Code Playgroud)
frmMain 是具有 frmMyForm 静态变量的主窗体。比在我的代码中,无论我想在哪里使用它,我只需检查它是否不为空,而不是使用静态实例创建它,然后提供给人们。
关闭表单时,我有以下代码:
frmMain.objfrm.Close_this();
Run Code Online (Sandbox Code Playgroud)
Close_this 调用 Close() 或 Dispose() 方法。
但是当我调用该函数时,我得到了上述异常。
归档时间: |
|
查看次数: |
11062 次 |
最近记录: |