Поделиться через


Практическое руководство. Наследование существующих элементов управления Windows Forms

Обновлен: Ноябрь 2007

Если нужно расширить функции существующего элемента управления, можно путем наследования создать элемент управления, производный от существующего. При наследовании существующего элемента управления наследуются все его функции и визуальные свойства. Например, если создан элемент управления, унаследованный из элемента управления Button, новый элемент управления будет выглядеть и действовать так же, как и стандартный элемент управления Button. Можно затем расширить или изменить функции нового элемента управления, реализовав собственные методы и свойства. В некоторых элементах управления можно также изменить внешний вид наследуемого элемента управления путем переопределения его метода OnPaint.

7h62478z.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска среды. Для изменения настроек выберите Импорт и экспорт параметров в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio.

Чтобы создать наследуемый элемент управления

  1. Создайте новый проект Windows.

    Проект может иметь любой тип, например Приложение Windows или Библиотека элементов управления Windows. Если выбран проект Библиотека элементов управления Windows, можно использовать пустой элемент управления и пропустить шаги 2 и 3.

  2. В меню Проект выберите Добавить пользовательский элемент управления.

    Открывается диалоговое окно Добавление нового элемента.

  3. В диалоговом окне Добавить новый элемент дважды щелкните Настраиваемый элемент управления.

    В проект добавится новый настраиваемый элемент управления.

  4. В редакторе кода найдите строку, которая задает класс Control в качестве базового класса для наследования. Измените имя базового класса на имя элемента управления, который нужно наследовать.

    Например, если нужно наследовать элемент управления Button, строки будут выглядеть следующим образом.

    Inherits System.Windows.Forms.Button
    
    public class CustomControl1 : System.Windows.Forms.Button
    
    public class CustomControl1
       extends System.Windows.Forms.Button
    
  5. Реализуйте необходимые методы или свойства для элемента управления.

  6. Если нужно изменить графический интерфейс элемента управления, переопределите метод OnPaint.

    7h62478z.alert_note(ru-ru,VS.90).gifПримечание.

    Переопределение метода OnPaint позволяет изменять внешний вид не для всех элементов управления. Элементы управления, оформленные средствами Windows (например, TextBox), никогда не вызывают собственный метод OnPaint и потому не используют нестандартный код. Сведения о доступности метода OnPaint для изменения см. в документации соответствующего элемента управления. Список всех элементов управления Windows Forms см. в разделе Элементы управления для использования в формах Windows Forms. Если в списке методов элемента управления нет метода OnPaint, то изменение интерфейса путем переопределения этого метода невозможно. Дополнительные сведения о пользовательском оформлении см. в разделе Рисование и отрисовка пользовательского элемента управления.

    Protected Overrides Sub OnPaint(ByVal pe As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(pe)
       ' Insert code to do custom painting. If you want to completely
       ' change the appearance of your control, do not call
       ' MyBase.OnPaint(pe).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       // Do not call base.OnPaint if you want to completely
       // control the appearance of the control.
       base.OnPaint(pe);
       // Insert code to do custom painting.
    }
    
    protected void OnPaint(PaintEventArgs pe) 
    {
       // Do not call base.OnPaint if you want to completely
       // control the appearance of the control.
       super.OnPaint(pe);
       // Insert code to do custom painting.
    }
    
  7. Сохраните и проверьте элемент управления.

См. также

Задачи

Практическое руководство. Наследование класса Control.

Практическое руководство. Наследование класса UserControl.

Практическое руководство. Создание элементов управления для форм Windows Forms

Устранение неполадок, связанных с унаследованными обработчиками событий, в Visual Basic

Основные понятия

Создание собственных элементов управления