代码之家  ›  专栏  ›  技术社区  ›  c3f

将给定名称的子控件强制转换为字符串

  •  -1
  • c3f  · 技术社区  · 7 年前

    我希望将给定名称的控件强制转换为字符串,但它只适用于窗体上的直接控件,而不适用于子控件(对于任何容器)。

        Dim LabelName As String = lb_TabControlTest.Name
        Dim l = DirectCast(Controls(LabelName), Label)
        If Not l Is Nothing Then
            lb_TabControlTestResult.Text = "Success"
        Else
            lb_TabControlTestResult.Text = "Failure"
        End If
    

    返回“failure”

    有人能解释为什么是这样吗?如果有更好的方法来解决这个问题,而不是搜索父控件中的每个控件,直到找到一个名称匹配的控件?

    1 回复  |  直到 7 年前
        1
  •  0
  •   c3f    7 年前

    变化

    Dim l = DirectCast(Controls(LabelName), Label)
    

    Dim l = DirectCast(TabPage1.Controls(LabelName), Label)