I don't find this suprising.  We use a two phase construction pattern to
work around issues like this.  The constructor does stuff which gets the
class up an running (at a system level) but does not depend on many (as
close to zero as possible) external dependencies.  Then you call a custom
constructor which does the application level code - which is in ~some~ sense
business logic.  I believe this is the model other frameworks (i.e. MFC)
have recommended.

So the code which creates the form would look something like the
following...

class Controller
{
    MainForm myMainForm;

    public Form GetMainForm()
    {
        // could throw and execption, but if it does you won't have class
        myMainForm = new MainForm();

        try
        {
            // do the application logic
            myMainForm.SecondaryConstructor();
        }
        finally
        {
            // if it fails we need to blow away the instance
            myMainForm = null;
        }

        return myMainForm;
    } // ShowForm
} // Controller


Hope this helps,
curt


----- Original Message -----
From: "K C" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, May 06, 2002 8:58 AM
Subject: [DOTNET] Close() in mainform constructor


> In my application the constructor of the main form goes through its' usual
> routine, if something critical happens like a missing important file, I
> call the Close() method of the form to quit immediately. I get a dispose
> exception, I can't seem to quit the application while im in the
> constructor. Anyone know the best way to do this?
>
> Thanks
> KC
>
> You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
>
>

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to