Предположим, что для каждой формы в приложении WinForms вы хотите изменить курсор на WaitCursor. Очевидный способ сделать это - добавить код в каждое место, где создается / показывается форма:
Try
Me.Cursor = Cursors.WaitCursor
Dim f As New frmMyForm
f.Show()
Catch ex As Exception
Throw
Finally
Me.Cursor = Cursors.Default
End Try
Однако мне было интересно, есть ли способ сообщить вашему приложению: «Всякий раз, когда происходит событие загрузки любой формы, показывайте WaitCursor. Когда событие формы Показано завершено, установите курсор обратно в значение по умолчанию». Таким образом, код Me.Cursor может быть только в одном месте и не разбросан по всему приложению - и не забыть вставить его в каждый экземпляр формы.
Полагаю, вы могли бы создать подкласс обычного класса Form и добавить настройки курсора в переопределенное событие, но я полагаю, что вы потеряете возможность визуального конструктора, когда создадите подкласс объекта Form.