目前我有以下几行代码:
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
声明的上方。