VB.Net如何使用多个变量循环If语句?

时间:2014-08-11 10:59:37

标签: vb.net loops if-statement

所以,如果我说10个文本框,我需要填写,我必须重复循环10次,每次添加到不同的文本框。现在我有这样的事情:

    If i = 0 Then
        Shift0 = endTime - startTime
        textStart0.text = startTime
        textEnd0.text = endTime
        chkBox0.checked = True
    End If

我有8次重复这样做9次。我想做到这样,循环会在每次经过时将数字从0增加到

    If i = (x) Then
        Shift(x) = endTime - startTime
        textStart(x).text = startTime
        textEnd(x).text = endTime
        chkBox(x).checked = True
    End If
    x = x + 1

如何将它放在循环中,以便每个循环中对象名称中的数字都会增加?

3 个答案:

答案 0 :(得分:1)

这样的事情会起作用

For x = 0 to 9
    Shift(x) = endTime - startTime
    textStart(x).text = startTime
    textEnd(x).text = endTime
    chkBox(x).checked = True
next x

答案 1 :(得分:1)

控制阵列已成为过去,从VB6时代开始,不幸的是,正如您所发现的,它们仍然可以使用它们! 试试这个循环;

For i = 0 to 9
    Shift0 = endTime - startTime                     ' Is Shift0 a control!?
    FindControl("textStart" & i).Text = startTime
    FindControl("textEnd" & i).Text = endTime
    FindControl("chkBox" & i).Checked = True
Next

借助此功能帮助......

Private Function FindControl(pName As String) As Control
    Dim vMatches = Me.Controls.Find(pName, True)
    If vMatches IsNot Nothing AndAlso vMatches.Length > 0 Then Return vMatches(0)
    Throw New Exception("Could not find the specified control!")
End Function

说了这么多之后,我强烈建议您重新思考一下您的表单和应用程序如何工作以避免这种情况!

答案 2 :(得分:0)

您可以将Controls的{​​{1}}属性与索引一起使用。如果您的表单包含完全且仅包含10个文本框,则可以正常工作:

Control

如果您在表单中有其他控件,则无法保证索引(在设计进行过程中,您无法以1到10作为文本框进行回复)。因此,我建议您将它们放在面板中,并参考此面板的For i as Integer = 1 to 10 Form1.Controls(i).Text = "Box " + i.ToString() Next

Controls

要了解有关VB.NET中循环的更多信息,请从此处开始:http://www.tutorialspoint.com/vb.net/vb.net_loops.htm