By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,434 Members | 2,963 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,434 IT Pros & Developers. It's quick & easy.

Handle the form closing when the user clicks on the "X" button (form caption bar)

P: n/a
Hi,
suppose that you have a C# form with two buttons, that are the
classical "btnOk" and "btnCancel" (besides them, of course in
the form there can be many other controls).
When the user clicks on btnOk, the program makes some confirm
operations and closes the form.
When the user clicks on btnCancel, the program makes some cancel
operations and closes the form.
My problem is that, when the user clicks on the "X" button of the
form caption bar, the form simply closes, while I would like that the
program made the same cancel operations as in the btnCancel click case.
I have discovered that the Form class has the "OnClosing" event
handler (that is executed when the form closes), but I can't insert
the cancel statements in its code (it is executed when the user clicks
on btnOk and btnCancel too, so the program would execute two times the
cancel operations or first the confirm operations and then the cancel
ones).
Is there a form event handler for the "X" form button click?
Or is there a form property that allows to associate the "X" form
button click to a button inside the form (btnCancel, in this case)?
Otherwise, can you propose me a simple way to handle this situation?
Thank you very much

Nov 10 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
In the eventargs for OnClosing you'll find a cancel property. If you
set that to true the form will not close. Create a member variable set
to true and set it to false when the user clicks either the cancel or
ok buttons.

That's not the tidiest route, but it will work.

polocar wrote:
Hi,
suppose that you have a C# form with two buttons, that are the
classical "btnOk" and "btnCancel" (besides them, of course in
the form there can be many other controls).
When the user clicks on btnOk, the program makes some confirm
operations and closes the form.
When the user clicks on btnCancel, the program makes some cancel
operations and closes the form.
My problem is that, when the user clicks on the "X" button of the
form caption bar, the form simply closes, while I would like that the
program made the same cancel operations as in the btnCancel click case.
I have discovered that the Form class has the "OnClosing" event
handler (that is executed when the form closes), but I can't insert
the cancel statements in its code (it is executed when the user clicks
on btnOk and btnCancel too, so the program would execute two times the
cancel operations or first the confirm operations and then the cancel
ones).
Is there a form event handler for the "X" form button click?
Or is there a form property that allows to associate the "X" form
button click to a button inside the form (btnCancel, in this case)?
Otherwise, can you propose me a simple way to handle this situation?
Thank you very much
Nov 10 '06 #2

P: n/a
Hi,

In the 2.0 framework use the FormClosing event instead of Closing, which is
now obsolete because it isn't raised when Application.Exit is called. Same
goes for the FormClosed and Closed events.

"Form.FormClosing Event"
http://msdn2.microsoft.com/en-us/lib...rmclosing.aspx

--
Dave Sexton

"DeveloperX" <nn*****@operamail.comwrote in message
news:11**********************@f16g2000cwb.googlegr oups.com...
In the eventargs for OnClosing you'll find a cancel property. If you
set that to true the form will not close. Create a member variable set
to true and set it to false when the user clicks either the cancel or
ok buttons.

That's not the tidiest route, but it will work.

polocar wrote:
>Hi,
suppose that you have a C# form with two buttons, that are the
classical "btnOk" and "btnCancel" (besides them, of course in
the form there can be many other controls).
When the user clicks on btnOk, the program makes some confirm
operations and closes the form.
When the user clicks on btnCancel, the program makes some cancel
operations and closes the form.
My problem is that, when the user clicks on the "X" button of the
form caption bar, the form simply closes, while I would like that the
program made the same cancel operations as in the btnCancel click case.
I have discovered that the Form class has the "OnClosing" event
handler (that is executed when the form closes), but I can't insert
the cancel statements in its code (it is executed when the user clicks
on btnOk and btnCancel too, so the program would execute two times the
cancel operations or first the confirm operations and then the cancel
ones).
Is there a form event handler for the "X" form button click?
Or is there a form property that allows to associate the "X" form
button click to a button inside the form (btnCancel, in this case)?
Otherwise, can you propose me a simple way to handle this situation?
Thank you very much

Nov 10 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.