首页 > 解决方案 > 关于在 VB.Net 中的 Class 属性中进行强制转换

问题描述

是否可以在类属性中进行刺痛?我想做的是从“我的”类中获取表单的文本属性。但是对于每个表单,我都必须静态地提供表单名称。我想动态地做到这一点。我尝试的是这里

    Dim frmName As New Object
    frmName = Name.ToString()

    Dim frmProperty As String

    frmProperty = "My.Forms." & frmName & ".Text"

    frmNameLabelControl.Text = frmProperty  

但在前端它显示'My.Forms.Form1.Text'

标签: vb.netclassdynamiccasting

解决方案


我认为您只需要以下代码。但是您需要在每个表单中以相同的顺序创建等效的 frmNameLabelControl。例如成为您在每个表单中创建的最后一个标签

    Dim FormsCount As Integer = My.Application.OpenForms.Count
    Dim frmProperty As String
    Dim lblContrIndex As Integer = 0 ' Number of label creation in descending order

    For i As Integer = 0 To FormsCount - 1

        frmProperty = My.Application.OpenForms.Item(i).Text
        My.Application.OpenForms.Item(i).Controls.OfType(Of Label).ElementAt(lblContrIndex).Text = frmProperty

    Next

推荐阅读