VB.NET中的公共事件处理程序

时间:2009-02-04 13:29:45

标签: c# vb.net events event-handling this

我的表单上有大约10个按钮,我希望它们可以调用相同的Click事件处理程序。

但是为此我需要对事件处理程序进行泛化,我们在VB.NET中没有“this”关键字来引用导致事件的控件。

如何在VB.NET中实现“this”关键字的功能?

我希望能够编写一个执行以下操作的事件处理程序:

Private Sub cmdButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdButton1.Click

    currentTag = this.Tag

End Sub

4 个答案:

答案 0 :(得分:7)

  

如何在VB.NET中实现“this”关键字的功能?

在VB中,

this被称为Me。但是,这与您的代码无关,并且引用了包含类,在您的情况下很可能是当前的Form。将其转换为sender后,您需要访问Control对象参数:

currentTag = DirectCast(sender, Control).Tag

答案 1 :(得分:1)

VB.NET中,Me相当于C#的this

答案 2 :(得分:0)

我认为您需要Me关键字。

答案 3 :(得分:0)

在VB.NET中this被称为me,关于VB.NET处理程序的第二个问题的解决方案是:您可以在Handles末尾添加Private Sub {1}}声明,如:

Private Sub cmdButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles cmdButton1.Click, 'cmdButton2.click, cmdButton3.click'

    currentTag = this.Tag

End Sub