How to: Close Dialog Boxes and Retain User Input
You can set the way a dialog box is closed at either design time or run time. At design time, you can set the DialogResult property for all of the Button controls on a dialog box. At run time, you can set the DialogResult property so you can dynamically handle user responses.
Note
The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. To change your settings, choose Import and Export Settings on the Tools menu. For more information, see Working with Settings.
To set the DialogResult property for a control at design time
Click on the Button control that you want to set the property for.
In the Properties window, select the DialogResult property and open the list of available property settings.
Select the appropriate dialog box result.
You can set the dialog box result for user-performed actions other than clicking a Button control. If your dialog box does not contain buttons to close the dialog box, you can set the result of the dialog box at run time.
To set the DialogResult property for a control or form programmatically
Navigate to the event handler or method that you want to set the DialogResult property for.
Author code similar to the following code example.
Public Sub InformationProcessed() ' This code will set the DialogResult for a form. Me.DialogResult = DialogResult.Yes ' OR ' This code will set the DialogResult for a button. Button1.DialogResult = DialogResult.No End Sub
private void InformationProcessed() { // This code will set the DialogResult for a form. DialogResult = DialogResult.Yes; // OR // This code will set the DialogResult for a button. button1.DialogResult = DialogResult.No; }
private: void InformationProcessed() { // This code will set the DialogResult for a form. this->DialogResult = DialogResult::Yes; // OR // This code will set the DialogResult for a button. button1->DialogResult = DialogResult::No; }
Although setting the DialogResult property will cause your dialog box to close automatically, you can still handle the control's Click event, and the dialog box will close once the event handler's code is finished. While handling the Click event, you may want to halt the closure of the dialog box.
To stop the DialogResult property from closing the dialog box
In the event handler, author code similar to the following code example.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Me.DialogResult = DialogResult.None End Sub
private void button1_Click(object sender, System.EventArgs e) { DialogResult = DialogResult.None; }
private: void button1_Click(System::Object ^ sender, System::EventArgs ^ e) { this->DialogResult = DialogResult::None; }
Note
You can also use the Closing event of the form to stop the closing of a dialog box.
See Also
Tasks
How to: Create Dialog Boxes at Design Time
How to: Retrieve the Result for Dialog Boxes