Vb.net 我需要在VB中显示标签之间添加延迟,但我似乎遇到了问题
我正在创建一个简单的“有趣”应用程序,当用户打开应用程序时,它会假装连接到设备并将其关闭。我希望它能像这样慢慢地显示标签Vb.net 我需要在VB中显示标签之间添加延迟,但我似乎遇到了问题,vb.net,multithreading,visual-studio-2010,Vb.net,Multithreading,Visual Studio 2010,我正在创建一个简单的“有趣”应用程序,当用户打开应用程序时,它会假装连接到设备并将其关闭。我希望它能像这样慢慢地显示标签 Connecting to device... (wait like 10 seconds) Exploiting registry... (wait like 10 seconds) 诸如此类,正如你从下面我使用的代码中所看到的那样,system.threading.thread.sleep(2000)它可以工作,但它会暂停整个代码,因为这个shutdown.vb是从一个
Connecting to device...
(wait like 10 seconds)
Exploiting registry...
(wait like 10 seconds)
诸如此类,正如你从下面我使用的代码中所看到的那样,system.threading.thread.sleep(2000)它可以工作,但它会暂停整个代码,因为这个shutdown.vb是从一个单独的main.vb打开的,它只会干扰整个执行和完成的工作!除了线程睡眠,还有其他方法吗?我只需要在每行之间停顿一下,谢谢!代码如下
Public Class shutdown
Private Sub shutdown_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label2.Hide()
Label3.Hide()
Label4.Hide()
shutdownConnect()
End Sub
Private Sub shutdownConnect()
Label2.Show()
System.Threading.Thread.Sleep(2000)
Label3.Show()
System.Threading.Thread.Sleep(2000)
Label4.Show()
End Sub
End Class
在
Load
事件处理程序中隐藏或显示任何内容都没有意义,因为表单在该点上甚至没有显示。使用线程.睡眠
也是非常不合适的。休眠UI线程是一件几乎永远不应该做的事情
正确的方法是首先在设计器中将
Label3
和Label4
的Visible
属性设置为False
。这样,简单地自然显示表单将显示Label2
,而不会显示其他表单。您还可以使用间隔为2000的计时器,并在勾选事件处理程序中,显示下一个标签。您可以将标签
添加到队列或其他集合中,然后,当它们全部显示时,停止计时器
您可以使用计时器
。在设计器中将标签的Visibility设置为False,然后使用计时器更改
Public Class shutdown
Private counter As Integer
Private Sub shutdown_Load(sender As Object, e As EventArgs) Handles MyBase.Load
timer1.Start()
End Sub
Private Sub timer1_Tick() Handles timer1.Tick
counter += 1
Select Case counter
Case 1
Label2.Visible = True
Case 2
Label3.Visible = True
Case 3
Label4.Visible = True
timer1.Stop()
counter = 0 'reset for next time
End Select
End Sub
End Class
用一个计时器来做这个。怎么样,@OneFineDay