Программирование
Веб программирование

Вывод сообщений в C# | Функция MessageBox

 
 

При написании практически любой программы есть необходимость выводить пользователю сообщения (например, в калькуляторе, вместо цифры пользователь написал букву, нужно вывести сообщение с ошибкой). Так же очень часто необходимо спросить у пользователя, и получить от него ответ. 

Сделаем простую программу, объяснения потом:

 На форму кинь 2 кнопки, в 1-ой свойство Text измени на «Простое сообщение», у второй - «Сообщение с выбором», вот что у тебя должно получиться: 

Код: 

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; //Обязательно подключаем пространство имен System.Windows.Forms

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

        /**
         * Кнопка вывода простого сообщения
         */
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Текст сообщения", "Заголовок сообщения", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }

        /**
         * Кнопка вывода сообщения с выбором
         */
        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Нравиться ли вам сайт vbbook.ru", "vbbook.ru", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.No) //Если нажал нет
            {
                MessageBox.Show("vbbook.ru не нравиться");
            }

            if (result == DialogResult.Yes) //Если нажал Да
            {
                MessageBox.Show("vbbook.ru нравиться!!");
            }
        }
    }
}

Теперь пояснения: 

MessageBox.Show("Текст сообщения", "Заголовок сообщения", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

Вывод обычного сообщения, параметр  MessageBoxButtons требуется для установки кол-ва кнопок в сообщении.  MessageBoxButtons может принимать следующие параметры: 

  1. MessageBoxButtons.AbortRetryIgnore – Прервать | Повтор | Пропустить
  2. MessageBoxButtons.OK - ОК
  3. MessageBoxButtons.OKCancel — ОК | Отмена
  4. MessageBoxButtons.RetryCancel — Повтор | Отмена
  5. MessageBoxButtons.YesNo — Да | Нет
  6. MessageBoxButtons.YesNoCancel — Да | Нет | Отмена

Параметр MessageBoxIcon устранавливает тип сообщения, и может принимать следующие значения: 

  1. MessageBoxIcon.Error
     
     
  2. MessageBoxIcon.Information
     
     
  3. MessageBoxIcon.None
     
     
  4. MessageBoxIcon.Question 
     
     
  5. MessageBoxIcon.Warning
     

Если в сообщение участвует несколько кнопок, то нам нужно записать резултат нажатой кнопки в переменную, делается это вот так:

DialogResult result = MessageBox.Show("Нравиться ли вам сайт vbbook.ru", "vbbook.ru", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

И дальше смотрим что нажал обычным сравнением: 

if (result == DialogResult.Yes) //Нажата Да

DialogResult может принимать следующие значения: 

  1. DialogResult.Abort -  Прервать
  2. DialogResult.Cancel - Отмена
  3. DialogResult.Ignore - Пропустить
  4. DialogResult.No -  Нет
  5. DialogResult.Yes -  Да
  6. DialogResult.OK -  ОК
  7. DialogResult.Retry -  Повтор

Скачать исходник


Есть вопросы? Спроси на нашем форуме!!
Release [23.02.2012 17:14]

http://vbbook.ru это label или ссылка?

LULZman [06.04.2012 08:30]

RELEASE, странно что вы не знаете... это linkLabel и то и другое))))

Release [06.04.2012 13:11]

:) я знаю что это LinkLabel, при клике на нее сайт открывается в браузере?

LULZman [06.04.2012 14:16]

да но там надо чуток поколдовать.
System.Diagnostics.Process.Start(linkLabel1.Text);

Release [06.04.2012 16:23]

Я сам на VB.NET, у меня по другому. System.Diagnostics.Process.Start("Браузер.exe", "site.ru")

LULZman [28.04.2012 12:56]

оооохх.... ну и что тут другое?) Это тоже самое, просто я не указал браузер(следовательно ссылка открывается в браузере по умолчанию)

Romen [08.10.2012 10:34]

чтото вообще кнопки неактивными получаются

Федор [14.10.2012 01:47]

Не пойму, что здесь, что в уроке с калькулятором, кнопки не рабочие получаются..

Федор [14.10.2012 01:48]

Если у меня visual studio 2012 это может как-то повлиять на это?

ReDoX [14.10.2012 10:36]

От версии студии ничего не меняется(код же остается один и тот же), значит что-то не правильно написали

Федор [14.10.2012 13:03]

Да, версия тут точно не причем, исходник то работает)

Да все вроде правильно..
Может кто-нибудь может через teamwiever посмотреть?
Код-то не большой, много времени не займу.

Саша [26.10.2012 17:39]

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

Алексей(alex13sh) [26.10.2012 20:01]

Условие Саш условие!
условие на определение количества символов в тексте если = 0 то смс
или условие на определение текста если он пуст то смс

Саша [31.10.2012 11:34]

Какое ещё условие? я же написал в чём проблема у меня... в делфи это можно сделать... но вот в vb.net не могу.. и инет весь обшарил..ничего подобного нет... прошу помощи...

Саша [31.10.2012 11:37]

К примеру: когда все тексбоксы пусты, нажимаешь на кнопку решить уравнение, и что бы вылазило сообщение "заполните поля"

Алексей(alex13sh) [31.10.2012 16:07]

я непойму проблема в Vb.Net или в C# ??

Саша [31.10.2012 21:01]

vb.net

Серёга [30.11.2012 00:21]

СПАСИБО ДОЛГО ИСКАЛ!

Samou4120 [02.04.2013 15:54]

У меня тоже кнопки не срабатывали пока не добавил 1:

private void button1
Click1(object sender, EventArgs e)

вторая кнопка тоже работает теперь, хоть и не добавлял:

private void button2
Click(object sender, EventArgs e)


Samou4120 [02.04.2013 15:56]

земля1* )

fenix1991 [14.01.2014 12:46]

отличный урок спасибо

Release130 [14.01.2014 22:11]

Ну так это же Padre :)



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.