Пример
Задача: Создать кнопку следующего вида, поведения и содержания:
В левой части кнопки находится иконка с луной.
В правой части кнопки имеется изменяющийся текст, указывающий, сколько раз по кнопке щелкнули с момента ее создания, например, «19 щелч.».
У кнопки есть дополнительное ReadOnly свойство Число_щелчков, смысл которого очевиден.
На 10-м щелчке по кнопке она порождает событие Наступление_зрелости. Подразумевается, что пока на кнопку не нажали 10 раз, она еще неопытная, незрелая, а когда нажали – она уже опытная, зрелая, ветеран. Таким образом, у кнопки есть дополнительное событие.
У кнопки есть дополнительное ReadOnly булевское свойство Ветеран, которое равно False до 10-го щелчка и True – после.
У кнопки есть дополнительный метод Прыжок, который заставляет кнопку прыгнуть направо. Дальность прыжка является параметром метода.
Решение: Создайте проект с кнопкой Button1, которая нужна только для проверки работы нашей создаваемой кнопки. Вот код:
Форма:
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
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Кнопка.Прыжок(40)
Debug.WriteLine(Кнопка.Число_щелчков)
Debug.WriteLine(Кнопка.Ветеран)
End Sub
Private Sub Кнопка_Наступление_зрелости() Handles Кнопка.Наступление_зрелости
MsgBox("Зрелость наступила")
End Sub
Класс:
Public Class clsКнопка
Inherits Button
Private Число_щелчков_по_кнопке As Integer = 0
Public ReadOnly Property Число_щелчков() As Integer
Get
Return Число_щелчков_по_кнопке
End Get
End Property
Private Опытная_кнопка As Boolean = False
Public ReadOnly Property Ветеран() As Boolean
Get
Return Опытная_кнопка
End Get
End Property