MessageBox

Очень часто требуется показать пользователю диалоговое окно, в котором нужно выбрать нужный вариант и щелкнуть соответствующую кнопку: Да, Нет, Отмена. Для этой задачи традиционно используется класс MessageBox в Windows Forms.

Рассмотрим несколько примеров использования MessageBox для отображения диалоговых окон, использования значков, кнопок, заголовков и текста, а также для чтения ввода пользователя.

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

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


private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show("Я диалоговое окно.");

    MessageBox.Show("Окно с заголовком", "Заголовок");

    // Окно с кнопками Да и Нет
    DialogResult result1 = MessageBox.Show("Вам все понятно?", "Сложный вопрос", 
        MessageBoxButtons.YesNo);

    // Окно с значком вопроса
    DialogResult result2 = MessageBox.Show("Вам действительно все понятно?",
        "Вопросик",
        MessageBoxButtons.YesNoCancel,
        MessageBoxIcon.Question);

    // Окно со значком и кнопкой по умолчанию
    DialogResult result3 = MessageBox.Show("Вам нравится?",
       "Вопрос",
        MessageBoxButtons.YesNoCancel,
        MessageBoxIcon.Question,
        MessageBoxDefaultButton.Button2);
 
    // Обрабатываем результаты последних трех диалоговых окон
    if (result1 == DialogResult.Yes &&
        result2 == DialogResult.Yes &&
        result3 == DialogResult.No)
    {
        MessageBox.Show("Вы ответили да, да, нет.");
    }
}

Выше представлены несколько вызовов метода MessageBox.Show с использованием разных перегрузок.

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

Порядок параметров в вызовах метода MessageBox.Show имеет значение.

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

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

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

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

Здесь были показаны примеры использования метода MessageBox.Show в программах C# с использованием Windows Forms. Метод MessageBox.Show идеально подходит для многих простых программ Windows Forms.

Hosted by uCoz