There is code in the CancelButton setter that sets the DialogResult of
the CancelButton to Cancel if it is currently "None".

This code is there so that if you set the CancelButton of the Form the
DialogResult for the CancelButton is automatically set to Cancel-
meaning setting up the CancelButton at designtime is a one stage
operation rather than a 2 stage operation. Unfortunately this is
inconsistent with the AcceptButton which does not have this behavior (it
did at one point and we removed it because the AcceptButton can be the
"Apply" or "Next" button). This is an unfortunate.

As noted earlier, if you want to override this behavior set the
dialogresult of the button back to None after InitializeComponent has
run.

Alternatively you can cancel the close using the closing event:

private void Form1_Closing(object sender, CancelEventArgs e) {
    if (textBox1.Text == "NO") {
        e.Cancel = true;
    }
}

mark
-----Original Message-----
From: Chris Sells [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, June 11, 2002 7:53 AM
To: [EMAIL PROTECTED]
Subject: Re: [DOTNET] Why is CancelButton special?

> Usually a form can be stopped from closing  by
> handling the event which occurs when cancel button is
> clicked . This is possible in VB . I presume it should
> be possible in .Net

In might be possible in VB.NET, but handling the Cancel button's click
event
in WinForms does *not* stop the form from closing.

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