在PHP和其他一些语言中,我知道程序有一种方法可以使用Visual Basic.NET动态调用控件的名称吗?
例如:如果你在WinForm上有一个名为txtQuestionValue15.text
的控件,有没有办法设置某种循环来返回并通过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
答案 0 :(得分: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