Повышение события в классе UserControl - PullRequest
1 голос
/ 24 января 2020

Итак, у меня есть UserControl, где у меня есть ручка для нажатия кнопки:

Private Sub Forward_Click(sender As Object, e As EventArgs) Handles Forward.Click

и второе нажатие кнопки:

Private Sub back_Click(sender As Object, e As EventArgs) Handles Back.Click

У меня есть другой дескриптор для щелчка мышью на userControl:

Private Sub UserControl_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick

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

1 Ответ

1 голос
/ 24 января 2020

Вы можете проверить, какая кнопка была нажата, сравнив e.Button с MouseButton.Left или MouseButton.Right. Это обеспечит выполнение кода только при нажатии левой кнопки мыши.

    If e.Button = MouseButtons.Left Then
        'Any user code here
    End If

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

Forward_Click(Me, Nothing)

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

    Private Sub UserControl1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick
    If e.Button = MouseButtons.Left Then
        Forward_Click(Me, Nothing)
    ElseIf e.Button = MouseButtons.Right Then
        Back_Click(Me, Nothing)
    End If
End Sub

Ваши условия могут отличаться, так как это всего лишь пример. Это также может не быть «Лучшая практика», но я здесь не для того, чтобы спорить, что такое «Лучшая практика». Это рабочий пример, чтобы ответить на ваш вопрос. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...