Урок "Вивід повідомлень у мові программування С# (сі шарп)"

Про матеріал

Прихильники C# називають його найбільш мультипарадигменным, універсальним, сучасним і зручним у використанні мовою програмування. Враховуючи той факт, що за ним стоїть платформа Microsoft .NET, число таких прихильників досить велика. Назва «Сі шарп» (від англ. sharp — дієз) несе «сакральний» сенс. Знак «#» (музичної нотації читається як «дієз») означає підвищення висоти звуку на півтону. З іншого боку, назва «C#» виходить шляхом наступної «еволюційної ланцюга»: C → C++ → C++++(C#), так як символ «#» можна скласти з 4-х знаків «+». Урок розроблен для роботи у програмі Visual Studio 10. Додаток Windows Forms - інтерфейс програмування додатків, що відповідає за графічний інтерфейс користувача, є частиною Microsoft.NET Framework і спрощує доступ до елементів інтерфейсу Microsoft Windows.

Перегляд файлу

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

 

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

Как правило, для вывода сообщений применяется элемент MessageBox. Однако кроме сообственно вывода строки сообщения данный элемент может устанавливать ряд настроек, которые определяют его поведение.

Для вывода сообщения в классе MessageBox предусмотрен метод Show, который имеет различные версии и может принимать ряд параметров. Рассмотрим одну из наиболее используемых версий:

public static DialogResult Show(

    string text,

    string caption,

    MessageBoxButtons buttons,

    MessageBoxIcon icon,

    MessageBoxDefaultButton defaultButton,

    MessageBoxOptions options

)

Здесь применяются следующие параметры:

text: текст сообщения

caption: текст заголовка окна сообщения

buttons: кнопки, используемые в окне сообщения. Принимает одно из значений перечисления MessageBoxButtons:

  • AbortRetryIgnore: три кнопки Abort (Отмена), Retry (Повтор), Ignore (Пропустить)
  • OK: одна кнопка OK
  • OKCancel: две кнопки OK и Cancel (Отмена)
  • RetryCancel: две кнопки Retry (Повтор) и Cancel (Отмена)
  • YesNo: две кнопки Yes и No
  • YesNoCancel: три кнопки Yes, No и Cancel (Отмена)

Таким образом, в зависимости от выбора окно сообщения может иметь от одной до трех кнопок.

icon: значок окна сообщения. Может принимать одно из следующих значений перечисления MessageBoxIcon:

  • Asterisk, Information: значок, состоящий из буквы i в нижнем регистре, помещенной в кружок
  • Error, Hand, Stop: значок, состоящий из белого знака "X" на круге красного цвета.
  • Exclamation, Warning: значок, состоящий из восклицательного знака в желтом треугольнике
  • Question: значок, состоящий из вопросительного знака на периметре круга
  • None: значок у сообщения отсутствует

defaultButton: кнопка, на которую по умолчанию устанавливается фокус. Принимает одно из значений перечисления MessageBoxDefaultButton:

  • Button1: первая кнопка из тех, которые задаются перечислением MessageBoxButtons
  • Button2: вторая кнопка
  • Button3: третья кнопка

options: параметры окна сообщения. Принимает одно из значений перечисления MessageBoxOptions:

  • DefaultDesktopOnly: окно сообщения отображается на активном рабочем столе.
  • RightAlign: текст окна сообщения выравнивается по правому краю
  • RtlReading: все элементы окна располагаются в обратном порядке справа налево
  • ServiceNotification: окно сообщения отображается на активном рабочем столе, даже если в системе не зарегистрирован ни один пользователь

Нередко используется один параметр - текст сообщения.

Пример 1:

Сделаем простую программу:

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

Поочередно делаем двойные щелчки мышкой по первой кнопке, а потом по второй и вписываем в код операторы:

Для первой кнопки:

        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("Нравиться ли вам сайт ocntt.dp.ua", " ocntt.dp.ua", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

 

            if (result == DialogResult.No) //Если нажал нет

            {

                MessageBox.Show("ocntt.dp.ua не нравиться");

            }

 

            if (result == DialogResult.Yes) //Если нажал Да

            {

                MessageBox.Show("ocntt.dp.ua нравиться!!");

            }

        }

Общий код программы: 

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("Нравиться ли вам сайт ocntt.dp.ua ", " ocntt.dp.ua ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

 

            if (result == DialogResult.No) //Если нажал нет

            {

                MessageBox.Show("ocntt.dp.ua не нравиться");

            }

 

            if (result == DialogResult.Yes) //Если нажал Да

            {

                MessageBox.Show("ocntt.dp.ua нравиться!!");

            }

        }

    }

}

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

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

 http://vbbook.ru/images/gallery_777/397_error.PNG
 

  1. MessageBoxIcon.Information
    http://vbbook.ru/images/gallery_777/2567_asterix.PNG 
     
  2. MessageBoxIcon.None
    http://vbbook.ru/images/gallery_777/8455_none.PNG 
     
  3. MessageBoxIcon.Question 
    http://vbbook.ru/images/gallery_777/1990_qustion.PNG 
     
  4. MessageBoxIcon.Warning
    http://vbbook.ru/images/gallery_777/8756_ex.PNG 

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

DialogResult result = MessageBox.Show("Нравиться ли вам сайт ocntt.dp.ua ", " ocntt.dp.ua", 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 -  Повтор

Пример 2:

Сделаем простую программу:

 На форму добавляем 1 кнопку

Делаем двойной щелчок мышкой по кнопке.

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

private void button1_Click(object sender, EventArgs e)

{

    DialogResult result = MessageBox.Show(

        "Окрасить кнопку в красный цвет?",

        "Сообщение",

        MessageBoxButtons.YesNo,

        MessageBoxIcon.Information,

        MessageBoxDefaultButton.Button1,

        MessageBoxOptions.DefaultDesktopOnly);

         

    if (result == DialogResult.Yes)

        button1.BackColor=Color.Red;

     

    this.TopMost = true;

}

Код программы:

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 WindowsFormsApplication21

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            DialogResult result = MessageBox.Show(

          "Окрасить кнопку в красный цвет?",

          "Сообщение",

          MessageBoxButtons.YesNo,

          MessageBoxIcon.Information,

          MessageBoxDefaultButton.Button1,

          MessageBoxOptions.DefaultDesktopOnly);

 

            if (result == DialogResult.Yes)

                button1.BackColor = Color.Red;

 

            this.TopMost = true;

 

        }

    }

}

И теперь, если в окне сообщения мы выберем вариант Yes, то кнопка окрасится в красный цвет.

Задание:

Написать программу, которая выводит на экран рисунок светофора, 3 надписи LABEL, 3 кнопки (без надписей) на местах, где должны располагаться сигналы светофора, и 1 кнопку с надписью «НАЧАЛИ!». По нажатию на эту кнопку появляется сообщение «Хотите ли вы изучать сигналы светофора?» и две кнопки ДА и НЕТ. Если человек нажимает ДА, то он возвращается в программу и нажав поочередно на окошки светофора, получает информацию о его цветах (в метках LABEL). Одновременно эти окошки закрашиваются в соответствующие цвета – красный, желтый и зеленый. Например: Красный сигнал – запрещающий сигнал светофора. Когда он горит, движение машин и пешеходов запрещено. Если он нажимает кнопку НЕТ, то выполнение программы на этом заканчивается.

Рисунок на форму добавляем с помощью PictureBox

 

Для удобства пользования добавим кнопку Выход.

Полный код программы:

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 WindowsFormsApplication22

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            DialogResult result = MessageBox.Show("Хотите ли вы изучать сигналы светофора?", " Светофор", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

 

            if (result == DialogResult.No) //Если нажал нет

            {

                MessageBox.Show("Ну, тогда до свидания!");

            }

 

            if (result == DialogResult.Yes) //Если нажал Да

            {

                MessageBox.Show("Тогда продолжим! Закройте окно и нажмите на любой сигнал светофора!");

            }

 

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            button2.BackColor = Color.Red;

            label1.Text = "Красный сигналзапрещающий сигнал светофора. Когда он горит, движение машин и пешеходов запрещено.  ";

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            button3.BackColor = Color.Yellow;

            label2.Text = "Желтый сигналвнимание! Когда он горит, движение машин и пешеходов запрещено.";

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            button4.BackColor = Color.Green;

            label3.Text = "Путь открыт! Движение разрешено!";

        }

 

        private void button5_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }

    }

}

 

Этапы выполнения программы:

Если ответ положительный:

Если ответ отрицательный:

1

 

docx
Додано
27 вересня 2018
Переглядів
1111
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку