我有动态添加到表单上的标签,每个标签都在其标签下有一个链接。
我还有动态标签的AddHandler lbTitle.Click
,但是当我尝试这样做时,它不起作用:
Private Sub lbTitle_Click(ByVal sender As Object, ByVal e As EventArgs)
Process.Start(e.Tag)
End Sub
因为
'tag'不是'System.EventArgs'
的成员
如何解决此问题,以便当有人点击动态添加的标签时,它会从标签的标签中启动网址。
答案 0 :(得分:0)
要添加事件处理程序,您需要AddressOf
Operator
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
答案 1 :(得分:0)
sender参数是标签,但您需要先将其强制转换为Label
类型,然后才能访问其Tag
属性。
Process.Start(CType(sender, Label).Tag)
或者,要处理任何类型的控件,您可以将其转换为基本控件类型,而不是:
Process.Start(CType(sender, Control).Tag)