Visual Basic循环并一次显示一行

Jmi*_*sen 5 vb.net string visual-studio-2008

我正在使用Visual Studio 2008,VB9,我正在尝试编写一个基本上对用户输入的一组数据进行计算的应用程序.在计算过程中,我想在每一步显示数据,并将其保留在GUI的显示区域(不会被显示的下一个数据覆盖).

例如:

UserInput = 1

Do

  UserInput += 1

  OutputLabel.Text = "UserInput " & UserInput

Loop Until UserInput = 5
Run Code Online (Sandbox Code Playgroud)

输出看起来像

UserInput 1 UserInput 2 UserInput 3 UserInput 4 UserInput 5

我试过这个,以及其他循环结构,似乎无法把事情做对.实际的应用程序有点复杂,但该示例很适合逻辑用途.

欢迎任何提示,谢谢!

Joe*_*orn 3

这是简单的版本:

Dim delimiter as String = ""
For UserInput As Integer = 1 To 5
    OutputLabel.Text &= String.Format("{0}UserInput {1}", delimiter, UserInput)
    delimiter = " "
Next
Run Code Online (Sandbox Code Playgroud)

然而,它和其他类似的问题有两个问题(包括迄今为止给出的所有其他答案):

  1. 它创建了很多额外的字符串
  2. 由于它处于循环中,因此在完成所有处理之前,标签将无法处理任何绘制事件来更新自身。

所以你也可以这样做:

Dim sb As New StringBuilder()
Dim delimiter As String = ""
For UserInput As Integer = 1 To 5
    sb.AppendFormat("{0}UserInput {1}", delimiter, UserInput)
    delimiter = " "
Next
OutputLabel.Text = sb.ToString()
Run Code Online (Sandbox Code Playgroud)

如果你真的想玩得开心,你可以这样做(不需要循环!):

OutputLabel.Text = Enumerable.Range(1, 5).Aggregate(Of String)("", Function(s, i) s & String.Format("UserInput {0} ", i))
Run Code Online (Sandbox Code Playgroud)