Solved

Saving Dirty Forms on Windows App Close (C# .Net 2.0)

Posted on 2007-03-23
4
1,610 Views
Last Modified: 2007-11-27
Experts,

I need some general advice on Windows form application development.  We're writting a module for Microsoft's CAB framework.  Our main content for this module is a DockPanel, ultimately containing multiple forms displayed as tabs.

What I'd like to be able to do is check each tab when the application is quit to see if the form is dirty, and if so, prompt the user to save his/her changes.  I've done this sucessfully for each close of the tab, but I'm not sure what the cleanest solution is to implement this on the application closing.

I can add an event listener to the onClosing event of the Shell Application, but that seems a bit dirty.  I don't know that I'm properly using the validation provided by windows, it seems like all forms should validate when they are unloading.

Any advice?

Thanks in advance,
dK
0
Comment
Question by:dkDeveloper
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 13

Accepted Solution

by:
Webstorm earned 500 total points
ID: 18780022
Hi

You can use the form FormClosing event and check the FormClosingEventArgs CloseReason property is CloseReason.UserClosing . In this event handler you check if you need to save, if so, ask the user. If you have to cancel the exit, just set the Cancel property of the FormClosingEventArgs parameter.
0
 
LVL 5

Author Comment

by:dkDeveloper
ID: 18780435
I gave that a shot and for some reason the FormClosing event isn't firing when the application is closing.  This could have something to do with the fact that it's a Module in the CAB, or it might be due to the fact that the form is a DockContent form inside of a DockPanel.

At any rate - no luck with that.

Any other thoughts or suggestions?

Thanks,
dK
0
 
LVL 1

Expert Comment

by:swiatlo
ID: 18935199
What about in destructor of a from. Can you have those form as your own class derived from current form class?
0
 
LVL 5

Author Comment

by:dkDeveloper
ID: 18935253
I ended up creating an interface that basically contains a method to determine if the form is dirty, a method to prompt saving, and a method to actually save the form.  Then when the main shell.application form is closing I loop through all open tabs and utilize that interface to force those windows to potentially save themselves.

This really shouldn't have been this difficult and I think I just ran into so many problems with it due to the fact that we were using both the CAB and other third party controls.  At any rate, thanks to everyone for trying to help.  I'm going to go ahead and (partially) accept WebStorms answer since that is generally what you would do.

Thanks again guys!
dK
0

Featured Post

Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…

630 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question