在UserControl类中引发事件

时间:2020-01-24 11:49:35

标签: vb.net event-handling user-controls

因此,我有一个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 个答案:

答案 0 :(得分:1)

您可以通过将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

您的情况可能有所不同,这仅是示例。它也可能不是“最佳实践”,但我不是在这里争论“最佳实践”是什么。这是一个可行的示例,可以回答您的问题。希望对您有所帮助。