使用另一变量动态调用另一个变量名



目前我有以下几行代码:

    Dim ta = frmControllerScreen.Controls.Find("txtResponseA", True)
    If ta.Count > 0 Then
        Dim txt As TextBox = ta.First
        txtResponseA = txt.Text
    End If
    Dim tb = frmControllerScreen.Controls.Find("txtResponseB", True)
    If tb.Count > 0 Then
        Dim txt As TextBox = tb.First
        txtResponseB = txt.Text
    End If
    Dim tc = frmControllerScreen.Controls.Find("txtResponseC", True)
    If tc.Count > 0 Then
        Dim txt As TextBox = ta.First
        txtResponseC = txt.Text
    End If
    Dim td = frmControllerScreen.Controls.Find("txtResponseD", True)
    If td.Count > 0 Then
        Dim txt As TextBox = ta.First
        txtResponseD = txt.Text
    End If

很明显,我将一个字符串赋给一个变量的a、B、C、D版本。目标是我能够继续调用其中一个值,并将其分配给一个文本框/标签。

我正在尝试使用以下代码:

    lblAutoChoice1.Text = ("txtResponse" & chrAvailableAnswers.Item(0).ToString.Trim)

但这并不完全奏效。我尝试在它上使用.ToString方法,但在运行时只收到System.ToString[]响应。

这在其他语言中很容易做到,比如PHP $Somevariable$correctAnswer,例如调出$SomevariableA,但我还没有在VB中看到变量的例子

如何在Visual Basic中创建变量变量(我认为这是正确的名称)?

从Idle_Mind的答案中得到提示:如何在Visual Basic 中使用类似变量的字符串

lblAutoChoice1.Text = Me.GetType.GetField("txtResponse" & chrAvailableAnswers.Item(0).ToString, _ 
BindingFlags.Instance Or BindingFlags.NonPublic).GetValue(Me).ToString

这将直接调用Imports System.Reflection作为顶行,位于表单的Class声明的上方。

最新更新