Пошаговое руководство. Наследование элементов управления Windows Forms с помощью Visual Basic
Visual Basic позволяет создавать эффективные настраиваемые элементы управления наследования. Наследование позволяет создавать элементы управления, сохраняющие все унаследованные функциональные возможности элементов управления Windows Forms и в то же время обладающие дополнительными функциями. В этом пошаговом руководстве вы создадите простой производный элемент управления с именем ValueButton
. Эта кнопка наследует функциональные возможности стандартных форм Windows Button управления и предоставляет настраиваемое свойство ButtonValue
.
Note
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров . Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки Visual Studio.
Создание проекта
Создавая проект, вы указываете для него имя, чтобы задать корневое пространство имен, имя сборки и имя проекта, и необходимо убедиться в том, что компонент по умолчанию попадет в нужное пространство имен.
Создание библиотеки элементов управления ValueButtonLib и элемента управления ValueButton
В меню Файл наведите указатель мыши на пункт Создать и выберите Проект, чтобы открыть диалоговое окно Создание проекта.
Выберите Библиотека элементов управления Windows Forms шаблон проекта из списка проектов Visual Basic и тип
ValueButtonLib
в имя поле.Имя проекта,
ValueButtonLib
, по умолчанию также назначается корневому пространству имен. Корневое пространство имен используется для определения имен компонентов в сборке. Например, если в двух сборках содержатся компоненты с именемValueButton
, можно указать компонентValueButton
, используяValueButtonLib.ValueButton
. Дополнительные сведения см. в разделе Пространства имен в Visual Basic.В обозревателе решений щелкните правой кнопкой мыши UserControl1.vb и выберите в контекстном меню команду Переименовать. Измените имя файла на
ValueButton.vb
. Чтобы переименовать все ссылки на элемент кода UserControl1, в соответствующем запросе нажмите кнопку Да.В обозревателе решений нажмите кнопку Показать все файлы.
Откройте узел ValueButton.vb, чтобы отобразить сформированный конструктором файл кода ValueButton.Designer.vb. Откройте этот файл в редакторе кода.
Найдите
Class
инструкцииPartial Public Class ValueButton
и измените тип, из которого наследуется этот элемент управления из UserControl для Button. Это позволяет элементу управления унаследовать все функции из Button элемента управления.Найдите
InitializeComponent
метод и удалить строку, назначающую AutoScaleMode свойство. Это свойство не существует в Button элемента управления.Сохраните проект, выбрав в меню Файл команду Сохранить все.
Обратите внимание, что визуальный конструктор больше не доступен. Так как Button элемент управления имеет собственное оформление, вы не сможете изменить его внешний вид в конструкторе. Визуальное представление будет иметь точно так же, как он наследует от класса (то есть Button) Если изменения в код.
Note
В область конструктора по-прежнему можно добавлять компоненты, не имеющие элементов пользовательского интерфейса.
Добавление свойства в наследуемый элемент управления
Один из возможных способов использования наследуемых элементов управления форм Windows Forms — это создание элементов управления, имеющих такой же внешний вид и функции, как у стандартных элементов управления Windows Forms, но предоставляющих настраиваемые свойства. В этом разделе вы добавите в элемент управления свойство с именем ButtonValue
.
Добавьте значение свойства
В обозревателе решений щелкните правой кнопкой мыши ValueButton.vb и выберите в контекстном меню пункт Просмотреть код.
Найдите оператор
Public Class ValueButton
. Под открывающей скобкой этого оператора введите следующий код.' Creates the private variable that will store the value of your ' property. Private varValue as integer ' Declares the property. Property ButtonValue() as Integer ' Sets the method for retrieving the value of your property. Get Return varValue End Get ' Sets the method for setting the value of your property. Set(ByVal Value as Integer) varValue = Value End Set End Property
Этот код определяет методы хранения и извлечения свойства
ButtonValue
. ОператорGet
определяет значение, возвращаемое значению, которое хранится в закрытой переменнойvarValue
, а операторSet
задает значение закрытой переменной с помощью ключевого словаValue
.Сохраните проект, выбрав в меню Файл команду Сохранить все.
Тестирование элемента управления
Элементы управления не являются автономными проектами и должны размещаться в контейнере. Чтобы протестировать элемент управления, необходимо предоставить тестовый проект, в котором он будет выполняться. Кроме того, нужно сделать элемент управления доступным для тестового проекта, выполнив сборку (компиляцию). В этом разделе вы выполните сборку элемента управления и протестируете его в Windows Forms.
Сборка элемента управления
В меню Сборка выберите Собрать решение.
Сборка должна быть выполнена без ошибок компилятора и предупреждений.
Создание тестового проекта
В меню Файл наведите указатель мыши на пункт Добавить и выберите Проект, чтобы открыть диалоговое окно Добавление нового проекта.
Выберите узел проектов Visual Basic и нажмите кнопку приложение Windows Forms.
В поле Имя файла введите
Test
.В обозревателе решений нажмите кнопку Показать все файлы.
В обозревателе решений щелкните узел Ссылки для тестового проекта правой кнопкой мыши и выберите в контекстном меню пункт Добавить ссылку, чтобы открыть диалоговое окно Добавление ссылки.
Щелкните вкладку Проекты.
Выберите вкладку Проекты. Проект
ValueButtonLib
будет указан под полем Имя проекта. Дважды щелкните проект, чтобы добавить ссылку на тестовый проект.В обозревателе решений щелкните Тест правой кнопкой мыши и выберите пункт Построить.
Добавление элемента управления в форму
В обозревателе решений щелкните правой кнопкой мыши файл Form1.vb и выберите в контекстном меню пункт Конструктор представлений.
На панели элементов выберите Компоненты ValueButtonLib. Дважды щелкните ValueButton.
Объект ValueButton появится в форме.
Щелкните ValueButton правой кнопкой мыши и выберите в контекстном меню пункт Свойства.
В окне Свойства проверьте свойства этого элемента управления. Обратите внимание, что они идентичны свойствам стандартной кнопки, кроме дополнительного свойства
ButtonValue
.Задайте для свойства
ButtonValue
значение5
.На все формы Windows Forms вкладке элементов, дважды щелкните метка добавление Label форму элемента управления.
Переместите метку в центр формы.
Дважды щелкните файл
ValueButton1
.В редакторе кода откроется событие
ValueButton1_Click
.Введите следующую строку кода.
Label1.Text = CStr(ValueButton1.ButtonValue)
В обозревателе решений щелкните Тест правой кнопкой мыши и выберите в контекстном меню команду Назначить автозагружаемым проектом.
В меню Отладка выберите пункт Начать отладку.
Form1
отображается.Нажмите кнопку
Valuebutton1
.В
Label1
появится цифра 5, показывающая, что свойствоButtonValue
унаследованного элемента управления переданоLabel1
с помощью методаValueButton1_Click
. Таким образом, ваш элемент управленияValueButton
наследует функциональные возможности стандартной кнопки Windows Forms и при этом предоставляет дополнительное настраиваемое свойство.
См. также
- Пошаговое руководство. Создание составного элемента управления с помощью Visual Basic
- Практическое руководство. Отображение элемента управления в диалоговом окне выбора элементов панели элементов
- Разработка пользовательских элементов управления Windows Forms в .NET Framework
- Основы наследования (Visual Basic)