mrN*_*mrN 1 vb.net delayed-execution
我正在创建一个模拟骰子滚动的小应用程序.为了模拟弹跳,我随机改变了图片的位置.现在要模拟多个弹跳,我使用for循环来连续改变图片框的位置.但它没有按照我的计划发生,表单只显示最后一个循环的位置.我甚至尝试使用System.Threading.Thread.Sleep(1000)希望显示弹跳,但即使他们只显示最后一个循环.
For bounceCount As Integer = 1 To bounces
bounce(pb_dice1)
bounce(pb_dice2)
System.Threading.Thread.Sleep(3000) 'I need to pause here and show the recent change in position then continue after 3 seconds
Next
Run Code Online (Sandbox Code Playgroud)
该bounce方法改变了位置PictureBox.
如何暂停我的for循环,显示新定位的骰子,然后在3秒后继续?
在事件处理程序完成执行之前,控件不会刷新其图形.否则,如果对一个或多个控件进行了多次更改,当您真正想要的是最终结果时,它们会反复刷新.
要强制控件刷新它的图形,您需要在睡眠前插入以下行:
PictureBox1.Refresh()
Run Code Online (Sandbox Code Playgroud)
当然,您可能必须更改PictureBox1为另一个控件的名称.此外,可能值得刷新父控件(即包含骰子的控件).
| 归档时间: |
|
| 查看次数: |
15696 次 |
| 最近记录: |