| Украина, Киев |
Пользовательские элементы управления
Файлы к лабораторной работе Вы можете скачать
здесь.
Элементы управления являются посредниками между приложением и пользователем. Они составляют так называемый графический интерфейс пользователя ( GUI - Graphics User Interface). Их задача состоит в отображении информации для пользователя, обеспечении удобного ввода и генерации событий, отрабатывающих предпочтения пользователя.
Как правило, библиотечных элементов управления достаточно для решения большинства задач, но иногда программисту может потребоваться нестандартный элемент управления. В таком случае он может разработать свой элемент управления с нуля или расширить стандартный элемент. Такой элемент управления называют пользовательским.
Механизм наследования C# предоставляет широкие возможности модификации существующих элементов управления на уровне расширения классов. Беря за основу библиотечный элемент управления, мы можем использовать его в качестве базового и внутри производного класса (расширения) переопределять виртуальные методы и свойства, добавлять новые поля, свойства, события.
Упражнение 1. Построение элемента управления BeepButton
Построим кнопку, при щелчке на которой компьютер выдаст звуковой сигнал. Для этого используем библиотечный элемент управления Button в качестве базового класса и расширим его для решения своей задачи.
Создание заготовки библиотеки компонентов
-
Создайте
новый пустой проект командой File/New/Project и
заполните окно мастера так
-
В панели Solution Explorer выделите корневой узел проекта UserControls и через контекстное меню выполните команду Properties
-
Откройте
вкладку Application свойств оболочки и настройте поля Default
namespace и Output type как показано
на рисунке
-
В панели Solution Explorer вызовите для корневого
узла проекта UserControls контекстное
меню и выполните команду Add/Component
-
Добавьте
к проекту новый файл компонента с именем BeepButton.cs
-
В рабочей
области конструктора форм щелкните на ссылке click
here to switch to code view или исполните команду
контекстного меню View Code, чтобы перейти в режим редактирования
кода
-
В панели Solution Explorer для узла References,
где уже должна находиться ссылка на библиотечную сборку System, выполните
команду Add
Reference
-
Удерживая
клавишу Ctrl через окно Add Reference выделите и добавьте
к проекту ссылки на библиотечные сборки System.Drawing и System.Windows.Forms
-
Убедитесь,
что теперь узел References проекта стал выглядеть так
-
Перейдите
в режим редактирования файла BeepButton.cs и откорректируйте
его так
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Media; // Для звука
namespace MyCompany.UserControls
{
public partial class BeepButton : Button
{
public BeepButton()
{
InitializeComponent();
}
public BeepButton(IContainer container)
{
container.Add(this);
InitializeComponent();
}
}
}
Листинг
19.1.
Файл BeepButton.cs после корректировки
Класс Button является наследником класса Component, поэтому мы спокойно применяем его в качестве базового, продолжая цепочку наследования.









