Прихильники 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:
Таким образом, в зависимости от выбора окно сообщения может иметь от одной до трех кнопок.
icon: значок окна сообщения. Может принимать одно из следующих значений перечисления MessageBoxIcon:
defaultButton: кнопка, на которую по умолчанию устанавливается фокус. Принимает одно из значений перечисления MessageBoxDefaultButton:
options: параметры окна сообщения. Принимает одно из значений перечисления MessageBoxOptions:
Нередко используется один параметр - текст сообщения.
Пример 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 может принимать следующие параметры:
Параметр MessageBoxIcon устранавливает тип сообщения, и может принимать следующие значения:
Если в сообщение участвует несколько кнопок, то нам нужно записать результат нажатой кнопки в переменную, делается это вот так:
DialogResult result = MessageBox.Show("Нравиться ли вам сайт ocntt.dp.ua ", " ocntt.dp.ua", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
И дальше смотрим что нажал обычным сравнением:
if (result == DialogResult.Yes) //Нажата Да
DialogResult может принимать следующие значения:
Пример 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