Практическое руководство. Наследование существующих элементов управления Windows Forms
Чтобы расширить функциональные возможности существующего элемента управления, можно создать элемент управления, производный от существующего элемента управления, путем наследования. При наследовании из существующего элемента управления наследуются все его функциональные возможности и визуальные свойства. Например, если вы создаете элемент управления, который наследуется от Button, новый элемент управления будет выглядеть и act, так же, как стандартный Button элемента управления. После этого вы сможете расширить или изменить функциональность нового элемента управления, реализовав пользовательские методы и свойства. В некоторых элементах управления, можно также изменить внешний вид наследуемого элемента управления путем переопределения его OnPaint метод.
Note
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров . Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.
Создание наследуемого элемента управления
Создайте проект приложения 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 метод.
Note
Переопределение 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#