2015-08-05 6 views
1

В PHP и на нескольких других языках я знаю, что существует способ динамически вызвать имя элемента управления с помощью Visual Basic.NET?Использование переменной в имени переменной

Например: если у вас есть элемент управления с именем txtQuestionValue15.text на WinForm, есть ли способ настроить какой-то цикл, чтобы вернуться и пройти через 1-14, и отключить их, или мне нужно вручную редактировать .

Я думал использовать что-то вроде этого SELECT Case заявления попробовать:

Select Case trkNoOfQuestions.Value 
     Case 1 
     Case 2 
     Case 3 
     Case 4 
     Case 5 
     Case 6 
     Case 7 
     Case 8 
     Case 9 
     Case 10 
     Case 11 
     Case 12 
     Case 13 
     Case 14 
     Case 15 
      ' Enable Question 15 
      txtQuestionTL15.Enabled = True 
      txtQuestionTL15.Text = 45 
      txtQuestionValue15.Enabled = True 
      txtQuestionValue15.Text = 1000000 

    End Select 
+1

Есть несколько способов сделать что-то подобное - хранить имена в списке и петли через что - список мог содержат класс, который содержит элементы управления «TL» и «Value». – Plutonix

+0

Управление 'DataGridView' – Fabio

+0

Учтите, как использовать DataGridView в этом случае? –

ответ

2

Вы можете использовать цикл и строку для поиска элемента управления. Вы должны проверить коллекцию управления, где они находятся, - здесь я использую форму.

For i As Integer = 1 To 15 
Dim tb As Textbox = TryCast(Me.Controls("txtQuestionTL" & i.ToString), Textbox) 
If Not tb Is Nothing Then 
'now you have the textbox based on the name 
End If 
Next 

В качестве альтернативы вы делаете поиск независимо от того, что контейнер они живут в:

For i As Integer = 1 To 15 
Dim tbs = Me.Controls.Find("txtQuestionTL" & i.ToString, True) 
If tbs.Count > 0 Then 
    Dim tb As TextBox = tbs.First 
End If 
Next 
+0

Итак, мне нужно использовать имя txtQuestionTL1 для элемента управления или есть способ выразить цикл как двухзначное число? –

+1

Поскольку 'i' = 1, а не 01, просто переименуйте их, чтобы они соответствовали счетчику. – OneFineDay