Практическое руководство. Наследование существующих элементов управления Windows Forms
Если нужно расширить функции существующего элемента управления, можно путем наследования создать элемент управления, производный от существующего. При наследовании существующего элемента управления наследуются все его функции и визуальные свойства. Например, если создан элемент управления, унаследованный из элемента управления Button, новый элемент управления будет выглядеть и действовать так же, как и стандартный элемент управления Button. Можно затем расширить или изменить функции нового элемента управления, реализовав собственные методы и свойства. В некоторых элементах управления можно также изменить внешний вид наследуемого элемента управления путем переопределения его метода OnPaint.
Примечание
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров.Дополнительные сведения см. в разделе Работа с параметрами.
Чтобы создать наследуемый элемент управления
Создайте новый проект Приложение Windows Forms.
В меню Проект выберите Добавить новый элемент.
Откроется диалоговое окно Добавление нового элемента.
В диалоговом окне Добавить новый элемент дважды щелкните Настраиваемый элемент управления.
В проект добавится новый настраиваемый элемент управления.
При использовании Visual Basic в верхней части обозревателя решений щелкните Показать все файлы. Разверните CustomControl1.vb и откройте CustomControl1.Designer.vb в редакторе кода.
При использовании C# откройте CustomControl1.cs в редакторе кода.
Найдите объявление класса, который наследуется от Control.
Измените базовый класс на элемент управления, из которого необходимо выполнить наследование.
Например, если нужно наследовать из объекта Button, измените объявление класса следующим образом.
Partial Class CustomControl1 Inherits System.Windows.Forms.Button
public partial class CustomControl1 : System.Windows.Forms.Button
При использовании Visual Basic сохраните и закройте CustomControl1.Designer.vb. Откройте CustomControl1.vb в редакторе кода.
Реализуйте необходимые методы или свойства для элемента управления.
Если нужно изменить графический интерфейс элемента управления, переопределите метод OnPaint.
Примечание
Переопределение метода OnPaint позволяет изменять внешний вид не для всех элементов управления.Элементы управления, оформленные средствами Windows (например, TextBox), никогда не вызывают собственный метод OnPaint и потому не используют нестандартный код.Сведения о доступности метода OnPaint для изменения см. в документации соответствующего элемента управления.Список всех элементов управления Windows Forms см. в разделе Элементы управления для использования в формах Windows Forms.Если в списке методов элемента управления нет метода OnPaint, то изменение интерфейса путем переопределения этого метода невозможно.Дополнительные сведения о пользовательском оформлении см. в разделе Рисование и отрисовка пользовательского элемента управления.
Protected Overrides Sub OnPaint(ByVal e As _ System.Windows.Forms.PaintEventArgs) MyBase.OnPaint(e) ' Insert code to do custom painting. ' If you want to completely change the appearance of your control, ' do not call MyBase.OnPaint(e). End Sub
protected override void OnPaint(PaintEventArgs pe) { base.OnPaint(pe); // Insert code to do custom painting. // If you want to completely change the appearance of your control, // do not call base.OnPaint(pe). }
Сохраните и проверьте элемент управления.
См. также
Задачи
Практическое руководство. Наследование класса Control.
Практическое руководство. Наследование класса UserControl.
Практическое руководство. Создание элементов управления для форм Windows Forms
Устранение неполадок, связанных с унаследованными обработчиками событий, в Visual Basic
Пример. Наследование элементов управления форм Windows Forms с помощью Visual Basic
Пример. Наследование элементов управления форм Windows Forms с помощью Visual C#
Основные понятия
Создание собственных элементов управления
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Июль 2010 |
Обновлено для Visual Studio 2010. |
Обратная связь от клиента. |