加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – Visual Basic循环并一次显示一行

发布时间:2020-12-17 00:06:15 所属栏目:大数据 来源:网络整理
导读:我正在使用Visual Studio 2008,VB9,我正在尝试编写一个基本上对用户输入的一组数据进行计算的应用程序.在计算过程中,我想在每一步显示数据,并将其保留在GUI的显示区域(不会被显示的下一个数据覆盖). 例如: UserInput = 1Do UserInput += 1 OutputLabel.Text
我正在使用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))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读