Наследуем элементы управления
В 22.13.2 мы следующим образом создавали на форме кнопку:
Dim WithEvents b As New Button 'Создаем кнопку
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Add(b) 'Добавляем созданную кнопку в коллекцию формы
End Sub
Что будет, если мы создадим и запустим проект такого содержания?:
Dim WithEvents Кнопка As New clsКнопка
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Controls.Add(Кнопка)
End Sub
Public Class clsКнопка
Inherits Button
End Class
Результат будет тот же самый.
Чем же новый способ отличается от старого? Почему вообще новый способ сработал? Поскольку класс clsКнопка является наследником класса Button, он обладает всеми свойствами, методами и событиями кнопки. А значит из него можно создавать объект – обычную кнопку, которым и пользоваться можно как обычной кнопкой. А отличается этот способ тем, что теперь в коде класса clsКнопка мы можем придавать нашей кнопке какие угодно новые свойства, методы и события. В результате мы можем сконструировать кнопку, внешний вид и поведение которой резко отличаются от обычной кнопки.
Стандартные же свойства, методы и события обычной кнопки вы можете узнать, поставив текстовый курсор на слово Button и нажав F1.