Примеры MessageBox.Show в Windows Forms в C#

Может потребоваться отображать пользователю диалоговое окно в программе Windows Forms на основе языка C#. Может также потребоваться получать ответ пользователя в этом диалоговом окне и работать с ним. Для этого идеально подходит метод MessageBox.Show в Windows Forms, который может решить проблему очень быстро. Здесь мы рассмотрим много примеров использования метода MessageBox.Show для отображения диалоговых окон, использования значков, кнопок, заголовков и текста, а также для чтения ввода пользователя.

Использование MessageBox.Show

Во-первых, метод MessageBox.Show является статическим методом, что означает, что не нужно создавать новый MessageBox() где-либо в коде. Вместо этого можно просто ввести "MessageBox", нажать точку и выбрать "Show". В следующем примере показан метод MessageBox.Show, используемый в обработчике событий Form1_Load. Чтобы создать обработчик событий Form1_Load, создайте новое приложение Windows Forms и дважды щелкните окно в конструкторе.

Программа Windows Forms, использующая 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 WindowsFormsApplication16

{

    public partial class Form1 : Form

    {

        public Form1()

        {

InitializeComponent();

        }

 

        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",

MessageBoxButtons.YesNo);

//

// Dialog box with question icon. [4]

//

DialogResult result2 = MessageBox.Show("Is Dot Net Perls awesome?",

"Important Query",

                MessageBoxButtons.YesNoCancel,

MessageBoxIcon.Question);

//

// Dialog box with question icon and default button. [5]

//

DialogResult result3 = MessageBox.Show("Is Visual Basic awesome?",

"The Question",

MessageBoxButtons.YesNoCancel,

MessageBoxIcon.Question,

MessageBoxDefaultButton.Button2);

//

// 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",

MessageBoxButtons.OKCancel,

MessageBoxIcon.Warning,

MessageBoxDefaultButton.Button1,

MessageBoxOptions.RightAlign,

true);

//

// Dialog box with exclamation icon. [8]

//

MessageBox.Show("Dot Net Perls is super.",

"Important Note",

MessageBoxButtons.OK,

MessageBoxIcon.Exclamation,

MessageBoxDefaultButton.Button1);

        }

    }

}

Обзор примера. В методе Form1_Load имеется восемь вызовов метода MessageBox.Show с использованием разных перегрузок. Метод Form1_Load будет выполняться немедленно после запуска программы Windows Forms. Поэтому при запуске программы будут последовательно показаны все диалоговые окна. Вызовы MessageBox.Show, показанные выше, вызывают разные реализации функции на основе своих списков параметров, которые называются реализацией перегрузки.

Введение параметров. Самый простой способ использовать MessageBox.Show — ввести "MessageBox", нажать точку и выбрать "Show". Затем Visual Studio отобразит раскрывающийся список со списком перегрузок. Можно просматривать списки перегрузки и выбирать лучший вариант. Затем можно ввести параметры. Например, для параметра "MessageBoxButtons" введите "MessageBoxButtons" и нажмите точку, чтобы увидеть все варианты. Нет необходимости создавать новый объект MessageBoxButtons().

Порядок параметров. Порядок параметров в вызовах метода MessageBox.Show имеет значение. Он дает компилятору возможность применения разрешения перегрузки для вызова лучшего метода в группе методов. Советы, как проще всего указывать параметры, см. в разделе "Введение параметров".

Сопоставление изображений. Изображение вверху этого документа показывает восемь диалоговых окон. Они являются результатом восьми вызовов метода MessageBox.Show в тексте программы. Диалоговое окно [6] показывается, только когда указаны определенные параметры в предыдущих трех диалоговых окнах. Оно проверяет перечисление DialogResult.

Использование DialogResult

В Windows Forms DialogResult не является действительным классом, но является именованной константой из перечисления. Это означает, что нельзя создать новый DialogResult с новым оператором. Чтобы проверить результат DialogResult, сначала назначьте переменной результат MessageBox.Show. Затем введите "==", и Visual Studio предложит варианты из перечисления DialogResult. Можно сравнивать DialogResult так же, как можно сравнивать целочисленные типы, например int.

Дополнительные перегрузки

Существует несколько дополнительных перегрузок MessageBox.Show, которые не показаны в этом документе. Они позволяют указывать окна-владельцы, что не требуется делать в простых случаях. Параметр владения IWin32Window является типом интерфейса, который указывается начальной буквой I. Интерфейс в языке C# — это контракт, который может использоваться для более общей трактовки экземпляров объектов. Слово "интерфейс" в данном случае не относится к пользовательскому интерфейсу.

Параметр HelpNavigator. Метод MessageBox.Show также имеет перегрузки, которые позволяют указывать параметры справки. Исходя из опыта работы автора, эти параметры не используются большую часть времени, поэтому он оставляет их на усмотрение MSDN.

Диалоговые окна не пользуются популярностью

При разработке программ для пользователя обычно лучше делать некритические ошибки как можно менее заметными. Правила Майкрософт по взаимодействию с пользователем предоставляют много советов по диалоговым окнам. Далее мы смотрим на цитату из этого документа, а дополнительные сведения можно прочитать на сайте MSDN.

MSDN. Хорошо написанные и понятные сообщения об ошибках принципиально важны для качественного взаимодействия с пользователями. Плохо написанные сообщения об ошибках приводят к низкой удовлетворенности продутом и являются основной причиной излишних обращений в службу поддержки. Ненужные сообщения об ошибках мешают работе пользователей.

Посетите msdn.microsoft.com.

Выводы

Здесь были показаны примеры использования метода MessageBox.Show в программах C# с использованием Windows Forms. Мы видели реальные снимки экранов, показывающие результаты вызовов метода MessageBox.Show, а также протестировали перечисление DialogResult. Мы рассмотрели многие другие варианты MessageBox.Show, включая параметры для статического метода. Метод MessageBox.Show идеально подходит для многих простых программ Windows Forms и полезен, когда требуется быстро разработать удобные программы.

См. статью, посвященную содержимому Windows Forms.