Создание простейшего элемента управления
Создадим и поместим на Toolbox простой элемент управления Запретная_зона, все назначение которого – запрещать мышке появляться над его поверхностью. В том смысле, что как только мышь появится над ним, должно выводиться сообщение «Запретная зона!». Вот и все.
Создадим новый проект. Ранее, создавая новый проект, мы имели в виду, что создаем приложение Windows, поэтому в окне создания нового проекта выбирали Windows Application (Приложение Windows). Теперь же мы создаем не приложение Windows, а элемент управления (Control), поэтому выбираем Windows Control Library (Библиотека элементов управления Windows) – см. Рис. 25.1.
Рис. 25.1
Даем библиотеке имя Моя_библиотека_элементов_управления и нажимаем ОК. На экране возникает по виду привычный проект в режиме проектирования (Рис. 25.2). Только вот форма – без бортиков и без заголовка, да свойств в Окне свойств у нее поменьше. И вообще, это уже не форма, а UserControl – наш будущий элемент управления пользователя. И окно, в котором находится наш будущий элемент, это уже не привычное окно конструктора форм, а конструктор элементов управления пользователя (User Control Designer).
Рис. 25.2
Вы можете привычным образом размещать на User Control, как на форме, различные элементы управления из Toolbox. Я помещу на него метку с текстом «Запретная зона» и кнопку с текстом «Не нажмешь!». А также покрашу элемент в красный цвет. В режиме работы он будет выглядеть, как на Рис. 25.4.
Зайдем в окно кода. Оно имеет такой вид:
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
Windows Form Designer generated code
End Class
Вы видите, что это окно кода некоего класса UserControl1, который наследует класс System.Windows.Forms.UserControl. Этот последний является предком элементов управления и ему присущи только самые общие их компоненты (свойства, методы и события), а именно: размеры, цвет и т.п.
Переименуйте UserControl1 в Запретная_зона.
В окне кода нам нужно задать поведение создаваемого элемента управления. Вспомним, что у элементов управления есть событие MouseEnter, которое наступает, когда курсор мыши пытается появиться над поверхностью элемента. Используем его. Выберем в списке в левом верхнем углу окна кода – Запретная_зона Events, а в правом верхнем углу – событие MouseEnter. В появившейся заготовке процедуры пишем подходящий оператор. Вот окончательный код в окне кода: