Form Dispose() or Close()

winforms

Solution

The error `Value Close() cannot be called while doing CreateHandle()` usually happens when we try to close the form in the constructor or Load event.

For example, the following code gives the error:

private void frmCustomer_Load(object sender, EventArgs e)
{
 if (!Valid())
  this.Close;
}

The Solution:

private void frmCustomer_Load(object sender, EventArgs e)
{
 if (!Valid())
  this.BeginInvoke(new MethodInvoker(Close));
} 

You can use this in your code.

Problem

I'm having 2 forms. From one form I created and shown the other form. It's working great. But when I try to close or Dispose that form from the form that created it I get following Exception: ``` 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) ``` Any idea????

Original source

Related problems