显示标签中先前循环的信息

时间:2017-04-12 16:15:23

标签: vb.net

所以我应该从daily_time_chunks = [ ['8:30','9:00'], ['9:00','9:30'], ['9:30','10:00'], ['10:00','10:30'], ['10:30','11:00'], ['11:00','11:30'], ['11:30','12:00'], ['1:00','1:30'] ] 循环获得前一次迭代的答案,并在一个带有多行的标签中显示,但我无法使用显示最新答案的标签。

我的代码如下:

For Next

3 个答案:

答案 0 :(得分:0)

一个选项就是,

lblAnswers.Text &= ("Your Grade is: " & intScore & vbNewLine)

这将在循环的每次传递中为文本追加一个新行,保留包含先前迭代的答案的行。

另一种方法是将结果存储到List (Of Integer)或数组中,然后在计算循环之外构建结果字符串。

另一种方法是在循环中构建一个结果字符串,并在完成后仅分配给lblAnswers.Text。

我不记得,如果标签支持多行这样的文字。您可能会发现需要使用文本控件。

答案 1 :(得分:0)

如果你想保留循环中任何内容的先前值,那么更简单的方法之一就是保留一个可以添加的列表,然后再引用。通过这种方式,您可以获得之前或之前两次的索引的引用,等等。

Dim scores = New List(Of Integer)

For i = 0 To 4
  Dim previousScore = 0
  Dim score = (i + 1) * 100
  scores.Add(score)
  If ((i - 1) >= 0) Then
    previousScore = scores(i - 1)
  End If

  Console.WriteLine($"Current Score {score} Previous Score{previousScore}")
Next

在这个例子中,我只是在循环外创建一个分数列表,以便以后可以引用它。然后我迭代一个分数(我只是将迭代加上一百次。然后我添加到我的分数列表中。然后我检查它是否超出第一次迭代,如果是这样的话就抓住前一次迭代。

答案 2 :(得分:0)

使用List(Of Integer)跟踪您的输入。您可以从列表中轻松提取总和,平均值,计数,最小值,最大值等。

每次在顶部添加新行时,都会附加标签的内容。

Private scores As New List(Of Integer)

Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    ' clear scores here or not, depends on whether you want a new list each time
    ' scores.Clear()
    ' clear label here or not
    ' lblAnswers.Text = ""
    For i = 1 To 5
        Dim score = Integer.Parse(InputBox("Enter your grade to continue:", "What's your Grade?"))
        If score < 1 Or score > 100 Then
            MessageBox.Show("Please Enter a number between 1 and 100")
        Else
            scores.Add(score)
            lblAnswers.Text =
                String.Format("Your grade is: {0}, the sum is {1}, the average is {2}",
                              score, scores.Sum(), scores.Average()) _
                & Environment.NewLine & lblAnswers.Text
        End If
    Next

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    lblAnswers.Text = ""
End Sub

enter image description here

您可能希望为输入添加一些验证,因为允许非数字输入,但会导致异常。