0

我有动态添加到表单上的标签,每个标签在其标签下都有一个链接。我也有AddHandler lbTitle.Click动态标签,但是当我尝试这样做时,它不起作用:

Private Sub lbTitle_Click(ByVal sender As Object, ByVal e As EventArgs)
    Process.Start(e.Tag)
End Sub

因为

“标签”不是“System.EventArgs”的成员

我该如何解决这个问题,以便当有人点击动态添加的标签时,它会从标签的标签中启动 url。

4

2 回答 2

0

要添加事件处理程序,您需要AddressOfOperator

AddHandler lbTitle.Click, AddressOf lbTitle_Click 

Label在事件处理程序中获取对您的引用,您可以使用以下sender参数:

Private Sub lbTitle_Click(ByVal sender As Object, ByVal e As EventArgs)
    Dim label = DirectCast(sender, Label)
    Process.Start(label.Tag.ToString())
End Sub
于 2012-07-27T19:24:20.210 回答
0

sender 参数是标签,但您需要先将其转换为Label类型,然后才能访问其Tag属性。

Process.Start(CType(sender, Label).Tag)

或者,要处理任何类型的控件,您可以将其转换为基本 Control 类型,而不是:

Process.Start(CType(sender, Control).Tag)
于 2012-07-27T19:25:14.517 回答