Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C# MessageBox.Show Examples

This C# tutorial uses the MessageBox.Show method in Windows Forms.

MessageBox.Show. Dialog boxes interrupt users.

They force users to respond before further action is taken. This is necessary in some situations. MessageBox.Show is useful if a warning is important or a serious error occurred.

Example. To start, the MessageBox.Show method is a static method, which means you do not need to create a new MessageBox() anywhere in your code. Instead, you can simply type "MessageBox" and press the period, and then select Show.

Static Method


In this example, the MessageBox.Show method is used in the Form1_Load event handler. To make the Form1_Load event handler, create a new Windows Forms application and double-click on the window in the designer.

Windows Forms program that uses MessageBox: C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
    public partial class Form1 : Form
	public Form1()

	private void Form1_Load(object sender, EventArgs e)
	    // The simplest overload of MessageBox.Show. [1]
	    MessageBox.Show("Dot Net Perls is awesome.");
	    // Dialog box with text and a title. [2]
	    MessageBox.Show("Dot Net Perls is awesome.",
		"Important Message");
	    // Dialog box with two buttons: yes and no. [3]
	    DialogResult result1 = MessageBox.Show("Is Dot Net Perls awesome?",
		"Important Question",
	    // Dialog box with question icon. [4]
	    DialogResult result2 = MessageBox.Show("Is Dot Net Perls awesome?",
		"Important Query",
	    // Dialog box with question icon and default button. [5]
	    DialogResult result3 = MessageBox.Show("Is Visual Basic awesome?",
		"The Question",
	    // Test the results of the previous three dialogs. [6]
	    if (result1 == DialogResult.Yes &&
		result2 == DialogResult.Yes &&
		result3 == DialogResult.No)
		MessageBox.Show("You answered yes, yes and no.");
	    // Dialog box that is right-aligned (not useful). [7]
	    MessageBox.Show("Dot Net Perls is the best.",
		"Critical Warning",
	    // Dialog box with exclamation icon. [8]
	    MessageBox.Show("Dot Net Perls is super.",
		"Important Note",

In Form1_Load, there are eight calls to the MessageBox.Show method using different overloads. The Form1_Load method is executed immediately after the program starts. When run, the program shows all the dialogs in sequential order.

And: The MessageBox.Show calls above call into different, overloaded implementations of the function based on the parameter lists.


Typing in the options. The easiest way to use MessageBox.Show is to type in "MessageBox", and then press period, and then select Show. Next, Visual Studio shows a popup with the overload list. You can scroll through the overload lists.

Tip: For a parameter such as "MessageBoxButtons", type in "MessageBoxButtons" and press period to see all the options.

Also: You do not need to create a new MessageBoxButtons() object. This is an enum type, not a class.


The order of the parameters in the MessageBox.Show method calls is important. The parameter order gives the compiler the ability to apply overload resolution to call the best method in the method group.

Images: The image at the top of this document shows eight dialog boxes. These correspond to MessageBox.Show calls.

Note: Dialog box [6] only is shown when you specify certain options on the previous three dialogs. It tests the DialogResult enumeration.

DialogResult. In Windows Forms, DialogResult is not an actual class but is a named constant from an enumeration. This means you cannot create a new DialogResult with the "new" operator. First assign your variable to the result of MessageBox.Show.

Next, type in "==" and Visual Studio will suggest options from the DialogResult enumeration. You can compare DialogResult like you would compare an integral type such as int. You can even use it in a switch.


Overloads. There are several more overloads of MessageBox.Show that are not shown in this document. They allow you to specify owner windows, which you do not need to do in simple cases. The IWin32Window owner parameter is an interface type.

Interface: An interface in the C# language is a contract that can be used to treat object instances in a more general way.


HelpNavigator parameter. The MessageBox.Show method also has overloads that allow you to specify Help options. In my experience, these options are not used most of the time, so I leave the specifics here up to MSDN.

User experience. When designing programs for the end user, it is usually best to make non-critical errors as unobtrusive as possible. The Microsoft User Experience Guidelines provide many tips on dialog boxes.

Well-written, helpful error messages are crucial to a quality user experience. Poorly written error messages result in low product satisfaction, and are a leading cause of avoidable technical support costs. Unnecessary error messages break users' flow.

Error Messages: MSDN

Summary. MessageBox.Show is an effective approach to dialog boxes in Windows Forms. We looked at screenshots of the results of the MessageBox.Show method. We also tested the DialogResult enumeration.

And: There are many options here. We can choose between many parameters to the static method.

So: The MessageBox.Show method is ideal for many simpler Windows Forms programs with less specific requirements.

Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf