Файлы к лабораторной работе Вы можете скачать здесь.
Элементы управления являются посредниками между приложением и пользователем. Они составляют так называемый графический интерфейс пользователя ( GUI - Graphics User Interface). Их задача состоит в отображении информации для пользователя, обеспечении удобного ввода и генерации событий, отрабатывающих предпочтения пользователя.
Как правило, библиотечных элементов управления достаточно для решения большинства задач, но иногда программисту может потребоваться нестандартный элемент управления. В таком случае он может разработать свой элемент управления с нуля или расширить стандартный элемент. Такой элемент управления называют пользовательским.
Механизм наследования C# предоставляет широкие возможности модификации существующих элементов управления на уровне расширения классов. Беря за основу библиотечный элемент управления, мы можем использовать его в качестве базового и внутри производного класса (расширения) переопределять виртуальные методы и свойства, добавлять новые поля, свойства, события.
Построим кнопку, при щелчке на которой компьютер выдаст звуковой сигнал. Для этого используем библиотечный элемент управления Button в качестве базового класса и расширим его для решения своей задачи.
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, поэтому мы спокойно применяем его в качестве базового, продолжая цепочку наследования.