Информационные технологииStfw.Ru 🔍

Создание Windows-приложений. Обработка событий мыши. Вывод текста в окно.

Создать простейшее приложение средствами Studio.NET.
🕛 22.05.2009, 13:40
В состав среды проектирования Microsoft Visual Studio.NET встроены средства, облегчающие программисту разработку приложений. Данная среда позволяет быстро создавать шаблоны новых приложений. При этом программисту не приходится писать ни одной строчки кода. Достаточно ответить на ряд вопросов, касающихся того, какое приложение требуется создать, и исходные тексты шаблона приложения вместе с файлами будут готовы.
Генерируемый средой Visual Studio.NET каркас стандартного приложения Windows содержит ряд классов. Класс формы (Form1) предназначен для создания интерфейса и программирования функциональности приложения. Соответственно, прежде всего с ним работает разработчик приложения Windows.
C формой можно работать в режиме дизайна и в режиме кодирования. В режиме дизайна доступна панель настраиваемых свойств формы (Properties), которая активизируется через команду меню, вызываемого по щелчку правой кнопкой мыши в области формы.
Используя свойства, доступные в панели свойств, можно определить положение, размер, цвет и особенности управления для создаваемого окна. Свойство Text позволяет изменить заголовок окна. Свойства Size и DesktopLocation задают размер и положение окна при его отображении. Свойство ForeColor служит для указания цвета переднего плана по умолчанию для всех элементов управления, размещенных в форме. Свойства BorderStyle, MinimizeBox и MaximizeBox определяют, можно ли будет свернуть, развернуть или изменить размер формы во время исполнения программы.
Для каждого свойства, изменяемого в панели свойств, создается соответствующий код. Он помещается в файл Form1.Designer.cs, в секцию, отмеченнуя как Windows Form Designer generated code. Можно раскрыть ее и просмотреть сгенерированный код.
Программы Windows, основанные на графическом интерфейсе пользователя, управляются событиями. С# выполняет функции обработки сообщений с помощью специальных функций - делегатов. Помимо методов и свойств формы содержат коллекции обработчиков событий. Если требуется обрабатывать событие, то вы должны выбрать в панели свойств формы закладку «Events» и двойным щелчком по пустой ячейке, расположенной справа от имени интересующего события, сгенерировать шаблон функции-обработчика события.
Некоторые события формы и элементов управления:

Событие Комментарии
Click Возникает при щелчке мыши
DoubleClick Возникает при двойном щелчке мыши

KeyDown Возникает при нажатии клавиши
KeyUp Возникает при отпускании клавиши
MouseDown Происходит, когда нажимается кнопка мыши, а указатель мыши
находится над объектом

MouseEnter Возникает, когда указатель мыши попадает в область объекта

MouseLeave Возникает, когда указатель мыши покидает область объекта
MouseMove Возникает при перемещении мыши над объектом
MouseUp Возникает при отпускании кнопки мыши в области объекта
Resize Возникает при изменении размера объекта

Обработчик события получает два аргумента - ссылку на объект, к которому относится событие, и дополнительную информацию о событии (тип EventArgs или производный от него).
Обработчики событий от мыши получают в качестве второго аргумента объект типа MouseEventArgs.

Свойства, определенные в классе MouseEventArgs:

Button Позволяет получить информацию о том, какая кнопка мыши нажата (в виде значений перечисления MouseButtons)
Clicks Позволяет получить информацию о том, сколько раз нажата и отпущена кнопка мыши
Delta Позволяет получить информацию (в виде положительного или отрицательного числового значения) о повороте колесика мыши
X Позволяет получить координату X для указателя мыши во время щелчка
Y То же самое для координаты Y

Операции рисования и вывода текста инкапсулирует класс System.Drawing.Graphics. В нём присутствуют методы для отображения линий, кривых, строк и других графических элементов.
Для выполнения вывода на экран в методах класса формы требуется предварительно получить объект Graphics. Это обеспечивается добавлением в метод следующей строки:

Graphics g = CreateGraphics();

Текстовые строки в C# хранятся в объектах типа string.
Для вывода текста в окно необходимо объявить переменную этого типа, проинициализировать её и передать методу DrawString класса Graphics.

Например:
string s = "Hello, World!";
g.DrawString(s, new Font("Times New Roman", 8),
new SolidBrush(Color.Black), new Point(100, 200));

В операции вывода строки дополнительно указываются три объекта типов Font, SolidBrush и PointF, задающие соответственно шрифт, ипользуемый для вывода, цвет шрифта и координаты точки привязки выводимого текста.
Со строками типа string можно выполнять операцию сложения, задаваемую знаком "+ ".
Числовые типы языка C# можно переводить в строковое представление вызовом для них функции toString.

Например:
string s = e.X.ToString();

Рекомендации
Пункт 2. Создайте проект типа Windows Application, выбрав пункт меню File | New | Project | Visual C# | Windows. В поле Location окна «New Project» укажите путь к папке, рекомендованной для сохранения ваших проектов. Нажмите кнопку “OK”. Пункт 3. В панели свойств формы задать значения свойств BackColor, Size, Text. Следует присвоить этим полям значения, задающие соответственно белый цвет, размер 600x450 и имя, которое вы считаете подходящим для разрабатываемого вами графического редактора, функции которого будут реализовываться в дальнейших лабораторных работах.
Пункт 4. Добавить к классу Form1 обработчик события MouseDown в соответствии с информацией, изложенной в справке к работе.
Для различения нажатий на левую и правую кнопки мыши следует проверять значение поля Button аргумента MouseEventArgs.
Если оно равно MouseButtons.Left, то была нажата левая кнопка, если MouseButtons.Right - правая.

Пример выражения проверки:
if (e.Button == MouseButtons.Left)

Диалоговое окно с сообщением создаётся с помощью функции MessageBox.Show(), которой передаётся два аргумента - строка выводимого в окне текста и строка заголовка окна.
Для очистки окна следует вызвать через объект типа Graphics функцию Clear(), передав ей в качестве аргумента значение цвета Color.White.

Си: C/C++   Теги: .net

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉