【问题标题】:Dynamic label with Handler带有 Handler 的动态标签
【发布时间】:2012-07-27 19:19:09
【问题描述】:

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

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

因为

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

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

【问题讨论】:

    标签: vb.net winforms event-handling tags addhandler


    【解决方案1】:

    要添加事件处理程序,您需要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
    

    【讨论】:

    • 我已经有了 AddressOf 运算符,但我没有输入整行。但是你的回答还是有帮助的。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-27
      • 2019-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 2020-12-05
      相关资源
      最近更新 更多