В настоящее время у меня есть следующие строки кода:Динамически вызов другой имя переменной с другой переменной
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?
Комментарии были копия/вставка из других частей кода, из которого вышла первая строка. Оцените полезный жест @HansPassant –
@JamesThorpe: Что касается использования 'Me.Controls.Find ...', я теперь получаю 'System.Windows.Forms.Control []', когда я использую 'Me.Controls.Find («txtResponse» & chrCorrectAnswer, True). Ручка «ToString». Я не знал, что переменные рассматривались как элементы управления в VB. –
Это не так, я неправильно понял, что вам нужно - вы снова нашли тот же самый контроль ... –