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


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

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

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

Как и стандартные элементы управления, пользовательские элементы управления имеют свои свойства, методы и события. Разработчик пишет код для обработки событий элемента управления и определяет, какие свойства предоставляются пользователю.

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

Чтобы пользовательский элемент управления выполнял свои функции, необходимо написать код для обработки событий этого элемента. Процедура обработки события пользовательского элемента управления не отличается от аналогичной процедуры для формы или элемента управления.

В этом примере будет написана процедура обработки события, которое обновляет метку FullName содержимым полей FirstName, MiddleName и LastName при вводе, используя обработчик событий TextChanged.

Практическое задание

Добавление кода для пользовательского элемента управления

  1. Откройте проект NamesUserControl, созданный на предыдущем занятии. Если он не был сохранен, сначала необходимо вернуться к предыдущему разделу Общее представление о конструкторе пользовательских элементов управления, и завершить описанные в нем действия.

  2. В Обозревателе решений выберите NamesControl.vb, а затем в меню Вид выберите Код.

  3. В редакторе кода добавьте следующий код в обработчик событий FirstName_TextChanged.

    Private Sub FirstName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FirstName.TextChanged, MiddleName.TextChanged, LastName.TextChanged
        ' Display the contents of the three text boxes in the label.
        FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text
    End Sub
    
  4. Нажмите клавишу F5 для запуска программы. Откроется контейнер UserControl TestContainer с пользовательским элементом управления.

  5. Введите свои имя, фамилию и отчество в соответствующие текстовые поля — по мере ввода имя будет отображаться в метке FullName.

Если взглянуть на код, добавленный выше, можно заметить, что предложение Handles обрабатывает событие TextChanged для всех трех элементов управления TextBox. Независимо от того, в каком порядке вы вводите текст в текстовые поля, метка FullName всегда обновляется при вводе.

Предоставление свойств в пользовательском элементе управления

Свойства стандартных элементов управления позволяют задавать и извлекать значения как во время разработки, так и во время выполнения. Кроме того, необходимо сделать доступными определенные свойства пользовательского элемента управления, чтобы их можно было задавать в окне Свойства во время разработки и ссылаться на них в коде.

Предоставление свойств в пользовательском элементе управления очень похоже на предоставление доступа к свойствам в классе, основное различие заключается в том, что вы можете также предоставлять свойства элементов управления, содержащихся в пользовательском элементе управления. Как и в случае классов, объявите свойство и добавьте код в процедуры Get и Set. Если предоставляется свойство вложенного элемента управления, объявлять закрытую переменную для хранения значения не нужно — значение хранится в свойстве элемента управления.

На данном этапе не существует никакого способа для извлечения текста, введенного в элементы FirstName, MiddleName и LastName, или значения метки FullName. Чтобы элемент управления выполнял свою функцию, необходимо предоставлять их значения как свойства. Так как значение метки FullName не должно изменяться извне, необходимо предоставлять его как свойство только для чтения.

Практическое задание

Добавление свойств

  1. В редакторе кода добавьте следующий код для предоставления значений FirstName, MiddleName и LastName в виде свойств.

    Property FirstNameText() As String
        Get
            Return FirstName.Text
        End Get
        Set(ByVal value As String)
            FirstName.Text = value
        End Set
    End Property
    Property MiddleNameText() As String
        Get
            Return MiddleName.Text
        End Get
        Set(ByVal value As String)
            MiddleName.Text = value
        End Set
    End Property
    Property LastNameText() As String
        Get
            Return LastName.Text
        End Get
        Set(ByVal value As String)
            LastName.Text = value
        End Set
    End Property 
    
  2. Добавьте следующий код для предоставления значения метки FullName в качестве свойства только для чтения.

    ReadOnly Property FullNameText() As String
        Get
            Return FullName.Text
        End Get
    End Property
    
  3. Нажмите клавишу F5 для запуска программы.

  4. Прокрутите Контейнер для проверки пользовательских элементов управления к нижней части сетки Свойства и выберите свойство FirstNameText. Введите свое имя, а затем выберите свойство FullNameText — в текстовом поле FirstName отобразится ваше имя, которое должно совпасть со свойством FullNameText.

    Попробуйте изменить некоторые другие свойства в сетке Свойства и в самом элементе управления, чтобы увидеть, как они связаны друг с другом. Это позволит вам проверить, с чем будет сталкиваться пользователь вашего элемента управления во время разработки.

  5. В меню Файл выберите команду Сохранить все, чтобы сохранить работу.

Следующие действия

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

Следующее занятие: Тестирование пользовательского элемента управления.

См. также

Задачи

Добавление элементов управления в пользовательский элемент управления

Другие ресурсы

Видимые объекты. Создание первого пользовательского элемента управления

Программирование с применением объектов. Использование классов

Интерактивный учебник по Visual Basic