Как вывести сообщение в c windows form
Для ввода и редактирования текста предназначены текстовые поля — элемент TextBox. Так же как и у элемента Label текст элемента TextBox можно установить или получить с помощью свойства Text.
По умолчанию при переносе элемента с панели инструментов создается однострочное текстовое поле. Для отображения больших объемов информации в текстовом поле нужно использовать его свойства Multiline и ScrollBars . При установке для свойства Multiline значения true, все избыточные символы, которые выходят за границы поля, будут переноситься на новую строку.
Кроме того, можно сделать прокрутку текстового поля, установив для его свойства ScrollBars одно из значений:
- None : без прокруток (по умолчанию)
- Horizontal : создает горизонтальную прокрутку при длине строки, превышающей ширину текстового поля
- Vertical : создает вертикальную прокрутку, если строки не помещаются в текстовом поле
- Both : создает вертикальную и горизонтальную прокрутку
Автозаполнение текстового поля
Элемент TextBox обладает достаточными возможностями для создания автозаполняемого поля. Для этого нам надо привязать свойство AutoCompleteCustomSource элемента TextBox к некоторой коллекции, из которой берутся данные для заполнения поля.
Итак, добавим на форму текстовое поле и пропишем в код события загрузки следующие строки:
public partial class Form1 : Form < public Form1() < InitializeComponent(); AutoCompleteStringCollection source = new AutoCompleteStringCollection() < "Кузнецов", "Иванов", "Петров", "Кустов" >; textBox1.AutoCompleteCustomSource = source; textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; > >
Режим автодополнения, представленный свойством AutoCompleteMode , имеет несколько возможных значений:
- None : отсутствие автодополнения
- Suggest : предлагает варианты для ввода, но не дополняет
- Append : дополняет введенное значение до строки из списка, но не предлагает варианты для выбора
- SuggestAppend : одновременно и предлагает варианты для автодополнения, и дополняет введенное пользователем значение
Перенос по словам
Чтобы текст в элементе TextBox переносился по словам, надо установить свойство WordWrap равным true . То есть если одно слово не умещается на строке, то но переносится на следующую. Данное свойство будет работать только для многострочных текстовых полей.
Ввод пароля
Также данный элемент имеет свойства, которые позволяют сделать из него поле для ввода пароля. Так, для этого надо использовать PasswordChar и UseSystemPasswordChar .
Свойство PasswordChar по умолчанию не имеет значение, если мы установим в качестве него какой-нибудь символ, то этот символ будут отображаться при вводе любых символов в текстовое поле.
Свойство UseSystemPasswordChar имеет похожее действие. Если мы установим его значение в true , то вместо введенных символов в текстовом поле будет отображаться знак пароля, принятый в системе, например, точка.
Событие TextChanged
Из всех событий элемента TextBox следует отметить событие TextChanged , которое срабатывает при изменении текста в элементе. Например, поместим на форму кроме текстового поля метку и сделаем так, чтобы при изменении текста в текстовом поле также менялся текст на метке:
public partial class Form1 : Form < public Form1() < InitializeComponent(); textBox1.TextChanged += textBox1_TextChanged; >private void textBox1_TextChanged(object sender, EventArgs e) < label1.Text = textBox1.Text; >>
Как вывести сообщение в c windows form
Как правило, для вывода сообщений применяется элемент 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 : окно сообщения отображается на активном рабочем столе, даже если в системе не зарегистрирован ни один пользователь
Нередко используется один параметр — текст сообщения. Но посмотрим, как использовать остальные параметры. Пусть у нас есть кнопка, в обработчике нажатия которой открывается следующее окно сообщения:
private void button1_Click(object sender, EventArgs e)
Однако нам не просто дается возможность установки кнопок в окне сообщения. Метод MessageBox.Show возвращает объект DialogResult , с помощью которого мы можем узнать, какую кнопку в окне сообщения нажал пользователь. DialogResult представляет перечисление, в котором определены следующие значения:
- Abort : нажата кнопка Abort
- Retry : нажата кнопка Retry
- Ignore : нажата кнопка Ignore
- OK : нажата кнопка OK
- Cancel : нажата кнопка Cancel
- None : отсутствие результата
- Yes : нажата кнопка Yes и No
- No : нажата кнопка No
Используем обработку выбора пользователя, изменив обработчик нажатия кнопки следующим образом:
private void button1_Click(object sender, EventArgs e)
И теперь, если в окне сообщения мы выберем выриант Yes, то кнопка окрасится в красный цвет.
Практическое руководство. Установка текста, отображаемого элементом управления (Windows Forms .NET)
В элементах управления Windows Forms обычно отображается текст, связанный с их основной функцией. Например, в элементе управления Button обычно отображается заголовок, указывающий, какое действие выполняется при нажатии кнопки. С помощью свойства Text можно задавать или получать текст для всех элементов управления. Шрифт можно менять с помощью свойства Font.
Задать текст также можно с помощью конструктора.
Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.
Автор
- В окне Свойства в Visual Studio задайте для свойства Text элемента управления соответствующую строку. Чтобы создать сочетание клавиш с подчеркиванием, добавьте амперсанд (&) перед буквой, которая будет использоваться в качестве клавиши быстрого вызова.
- В окне Свойства нажмите кнопку с многоточием ( ) рядом со свойствомШрифт. В диалоговом окне «Стандартный шрифт» настройте тип, размер и стиль шрифта.
Программный
- Присвойте свойству Text строку. Чтобы создать клавишу доступа с подчеркиванием, добавьте амперсанд (&) перед буквой, которая будет использоваться в качестве клавиши доступа.
- Присвойте свойству Font объект типа Font.
Button1.Text = "Click here to save changes" Button1.Font = New Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point)
button1.Text = "Click here to save changes"; button1.Font = new Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point);
Примечание. Для отображения в элементах пользовательского интерфейса, например пунктах меню, специальных символов, которые обычно интерпретируются в них по-другому, можно использовать escape-символ. Например, следующая строка кода задает такой текст для пункта меню: «& Now For Something Completely Different»:
MPMenuItem.Text = "&& Now For Something Completely Different"
mpMenuItem.Text = "&& Now For Something Completely Different";
См. также
- Создание ключей доступа для элементов управления Windows Forms
- System.Windows.Forms.Control.Text
Как вывести сообщение на форме? (отметил жирным в задании)
Создайте приложение с двумя формами, в котором на первой (главной) форме выводится сообщение «Нажми ‘э’, чтобы увидеть эллипс, ‘к’, чтобы увидеть квадрат, и ‘т’, чтобы увидеть треугольник. Для закрытия приложения нажми Esc». При нажатии на клавиши ‘к’, ‘п’ или ‘т’ открывается другая форма, на которой изображена указанная фигура в произвольном месте, произвольного размера, цвета заливки, а также толщины и цвета контура, а в заголовке формы указано название фигуры. При нажатии на клавишу Esc по главной форме, приложение закрывается, предварительно выдав сообщение, уточняющее, точно ли пользователь хочет закрыть приложение.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace task_6 { public partial class Form1 : Form { bool esc = false; public Form1() { InitializeComponent(); } private void Form1_KeyPress(object sender, KeyPressEventArgs e) key == 'т' } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Вы действительно хотите закрыть приложение?", "Закрыть приложение", MessageBoxButtons.OKCancel) == DialogResult.Cancel) e.Cancel = true; } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { this.Close(); } } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace task_6 { public partial class Form2 : Form { int x, y, a, b, c, d, l1, l2; public Form2() { InitializeComponent(); } private void Form2_Shown(object sender, EventArgs e) if (key == 'к' if (key == 'э' || key == '\'') { a = Rand.Next(256); b = Rand.Next(256); c = Rand.Next(256); d = Rand.Next(7); x = Rand.Next(100); y = Rand.Next(100); l1 = Rand.Next(this.ClientSize.Width) + x; l2 = Rand.Next(this.ClientSize.Height) + y; MyPen = new Pen(Color.FromArgb(a, b, c), d); a = Rand.Next(256); b = Rand.Next(256); c = Rand.Next(256); MyPen1 = new SolidBrush(Color.FromArgb(a, b, c)); Rectangle myRectangle = new Rectangle(l1, l2, x, y); Graph.DrawEllipse(MyPen, myRectangle); Graph.FillEllipse(MyPen1, myRectangle); } if (key == 'т' || key == 'n') { a = Rand.Next(256); b = Rand.Next(256); c = Rand.Next(256); d = Rand.Next(7); MyPen1 = new SolidBrush(Color.FromArgb(a, b, c)); int x1 = Rand.Next(this.ClientSize.Width); int y1 = Rand.Next(this.ClientSize.Width); int x2 = Rand.Next(this.ClientSize.Width); int y2 = Rand.Next(this.ClientSize.Width); int x3 = Rand.Next(this.ClientSize.Width); int y3 = Rand.Next(this.ClientSize.Width); Point startpoint = new Point(x1, y1); Point midpoint = new Point(x2, y2); Point endpoint = new Point(x3, y3); Point[] curvePoints = { startpoint, midpoint, endpoint }; a = Rand.Next(256); b = Rand.Next(256); c = Rand.Next(256); d = Rand.Next(7); MyPen = new Pen(Color.FromArgb(a, b, c), d); Graph.DrawPolygon(MyPen, curvePoints); Graph.FillPolygon(MyPen1, curvePoints); } } private void Form2_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { this.Close(); } } char key; Graphics Graph; Pen MyPen; SolidBrush MyPen1; Random Rand; public Form2(char data) { InitializeComponent(); Graph = CreateGraphics(); Rand = new Random(); key = data; } } }