C# DialogResult

DialogResult example

DialogResult is returned by dialogs after they are dismissed. It indicates which button was clicked on the dialog by the user. It is used with the MessageBox.Show method. It is a value—it can be switched upon and tested in an if-statement.

Example

Note

This is a Windows Forms program that uses a Form1_Load event handler. There, we show a MessageBox with the OK and Cancel buttons (seen in the screenshot). Afterwards, we use a switch selection statement on the DialogResult enum local variable. We change the Text property based on what button was clicked in the MessageBox. If the Enter key was pressed, the OK button is considered to be used.

MessageBox.Show Examples

This C# program shows how to use the DialogResult enum in Windows Forms.

Program that uses switch on DialogResult [C#]

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
	public Form1()
	{
	    InitializeComponent();
	}

	private void Form1_Load(object sender, EventArgs e)
	{
	    DialogResult result = MessageBox.Show("How are you?", "Hi",
		MessageBoxButtons.OKCancel);
	    switch (result)
	    {
		case DialogResult.OK:
		    {
			this.Text = "[OK]";
			break;
		    }
		case DialogResult.Cancel:
		    {
			this.Text = "[Cancel]";
			break;
		    }
	    }
	}
    }
}

Output
    Window title changes based on what button was pressed.

DialogResult values

Enum type

The DialogResult enum contains many different values. Because this enum is not decorated with the [Flags] attribute, you cannot combine multiple enum values. As an aside I would like to know how OK and Cancel could be clicked at the same time. Here are the possible values for DialogResult:

DialogResult.None
DialogResult.OK
DialogResult.Cancel
DialogResult.Abort
DialogResult.Retry
DialogResult.Ignore
DialogResult.Yes
DialogResult.No

Summary

We examined a simple example of the DialogResult enumerated constant in the Windows Forms graphical user interface toolkit. With this enum we receive an encoded form of the action taken by the user, which can then influence flow control in the remaining method body.

Windows Forms
.NET