[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 824
  • Last Modified:

How do you trap the close button on an MDI child form?

I have a custom use application I am developing, but I'm having a problem with some child forms.  I have one child form (an output console) that needs to be opened to see the debugging output.  I have no problem getting the form to open, minimize, etc.  but, I cannot keep it from releasing it's resources when you click the close (X) button.  I DO NOT want to disable the button.  What I have done is setup an event handler for when the form closes.  Instead of closing, it hides the window.   However, as soon as the window is hidden once, if you try to show (form.show() or form.visible = true;) it errors out and the application locks up.  The error message from VS08 is: System.ObjectDisposedException was unhandled.  The object that was unhandled is the form I want to show.  I'm guessing what is happening is it is getting disposed before the code comes in from my event handler (e.cancel():)  So, I'm guessing my only option is to somehow trap the close button and never initiate a close to being with.  If I could force it to only hide, that should be perfect.  I've searched for days on end and cannot find any solutions other than disabling the close button (again, CAN NOT do this) or handling the closing event like I'm already doing.

Below is the code for my event hanlder:

private void consoleForm_FormClosing(object sender, FormClosingEventArgs e)
        {
                e.Cancel = true;
                this.Hide();
        }

Open in new window

0
Journer
Asked:
Journer
1 Solution
 
Bruce_1975Commented:
You have to override the event handler ;o)

Regards,
Bruce
protected override void OnClosing(CancelEventArgs e)
{
    e.Cancel = true;
    this.Hide();
}

Open in new window

0
 
JournerAuthor Commented:
you rock!
0

Featured Post

[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now