我怎么能做出“延迟”?

时间:2015-11-12 15:34:13

标签: vb.net textbox delay

我有一个文本框,它显示文本的进度! 如何延迟,代码不会立即显示?

            MetroTextBox4.Text = MetroTextBox4.Text + "test1" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test2" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test3" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test4" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test5" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test6" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test7" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test8" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test9" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "test10" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "******************************************************" & Environment.NewLine
            MetroTextBox4.Text = MetroTextBox4.Text + "You may experience lag for a bit!" & Environment.NewLine

2 个答案:

答案 0 :(得分:1)

在表单中添加一个计时器,可以在可以添加到WinForms的控件的工具箱面板中找到。当消息开始出现时,Call timer1.Start()就会出现,并注册一个tick事件回调。当计时器滴答时,将下一行文本添加到文本框中。添加最后一行后,请致电timer1.Stop()将其关闭。

答案 1 :(得分:0)

如果您只是希望在每行添加到文本框之间有延迟,并且您不担心在每次添加之间无法运行任何其他进程,请将此子添加到您的定义中。

public abstract class ClientBase<TChannel> : 
     ICommunicationObject, IDisposable where TChannel : class

并在每行之间添加

Private Sub Delay(msdelay As Integer)
    Dim stpwatch As New Stopwatch
    stpwatch.Start()
    Do
    Loop Until stpwatch.ElapsedMilliseconds >= msdelay
End Sub

其中1000是您想要的延迟毫秒数。

但是,如果您希望在后台运行测试并在测试过程中进行报告,那么您很可能至少需要使用后台工作程序。也许您可以展示测试代码的基础知识,并根据其运行方式,更容易提供答案。