目前我有以下几行代码:
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中创建变量变量(我相信是正确的名称)?
答案 0 :(得分:0)
从Idle_Mind的答案中汲取线索: How to use a string like a variable in Visual Basic
lblAutoChoice1.Text = Me.GetType.GetField("txtResponse" & chrAvailableAnswers.Item(0).ToString, _
BindingFlags.Instance Or BindingFlags.NonPublic).GetValue(Me).ToString
这直接要求Imports System.Reflection
用作顶线,高于表单Class
的声明。