📜  带有多个handels的private sub找到sneder - VBA(1)

📅  最后修改于: 2023-12-03 15:25:27.319000             🧑  作者: Mango

带有多个handels的private sub找到sneder - VBA

在 VBA 中,我们可以使用 Private Sub 来定义一个子程序,用于在我们的 VBA 代码中执行某些操作。而在这个子程序中,我们可以使用 Handles 关键字来处理多个控件的事件。

在这个主题中,我们将介绍如何使用带有多个 HandlesPrivate Sub 来查找 sender。

带有多个 Handles 的 Private Sub

在 VBA 中,我们可以使用带有多个 HandlesPrivate Sub 来处理多个控件的事件。下面是一个示例:

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
    ' 在这里处理事件
End Sub

在这个示例中,我们定义了一个带有多个 HandlesPrivate Sub,用于处理三个 TextBox 控件的 TextChanged 事件。在这个子程序中,我们可以使用 sender 参数来访问当前触发事件的控件。

查找 Sender

有时候我们需要在带有多个 HandlesPrivate Sub 中查找当前触发事件的控件,这时候我们可以使用 sender 参数来实现。

下面是一个示例:

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged, TextBox3.TextChanged
    Dim tb As TextBox
    
    If TypeOf sender Is TextBox Then
        ' 在这里处理事件
        Set tb = sender
        MsgBox "当前触发事件的控件是 " & tb.Name
    End If
End Sub

在这个示例中,我们首先使用 TypeOf 语句判断当前触发事件的控件是否是一个 TextBox 控件。如果是,我们就可以将 sender 参数转换成一个 TextBox 对象,并使用它来访问该控件的属性和方法。

总结

使用带有多个 HandlesPrivate Sub 可以方便地处理多个控件的事件,而使用 sender 参数可以轻松地访问当前触发事件的控件。希望本文对你有所帮助!