我正在使用Visual Studio 2008,VB9,我正在尝试编写一个基本上对用户输入的一组数据进行计算的应用程序.在计算过程中,我想在每一步显示数据,并将其保留在GUI的显示区域(不会被显示的下一个数据覆盖).
例如:
UserInput = 1 Do UserInput += 1 OutputLabel.Text = "UserInput " & UserInput Loop Until UserInput = 5
输出看起来像
UserInput 1
UserInput 2
UserInput 3
UserInput 4
UserInput 5
我试过这个,以及其他循环结构,似乎无法把事情做对.实际的应用程序有点复杂,但该示例很适合逻辑用途.
欢迎任何提示,谢谢!
这是简单的版本:
Dim delimiter as String = "" For UserInput As Integer = 1 To 5 OutputLabel.Text &= String.Format("{0}UserInput {1}",delimiter,UserInput) delimiter = " " Next
但是,它有两个问题,而其他问题(包括目前给出的其他答案):
>它创造了许多额外的字符串
>由于它处于循环中,因此在完成所有处理之前,标签将无法处理任何绘制事件以更新自身.
所以你也可以这样做:
Dim sb As New StringBuilder() Dim delimiter As String = "" For UserInput As Integer = 1 To 5 sb.AppendFormat("{0}UserInput {1}",UserInput) delimiter = " " Next OutputLabel.Text = sb.ToString()
如果你真的想玩得开心,你可以做这样的事情(不需要循环!):
OutputLabel.Text = Enumerable.Range(1,5).Aggregate(Of String)("",Function(s,i) s & String.Format("UserInput {0} ",i))