
正文
vb.net延时函的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
vb.net使用Sleep后有些代码没有执行!
在VB.NET中,带框架窗体的大小是不能为0的,要想做到高、宽都为0,需要自己重绘一个无边框窗体,用外置图片来绘制,配合PS做一些图片,既可以换肤还能做的很漂亮。
按当前代码修改,你把下面的代码粘回去就可以了,窗体的高和宽达到最小时,循环会自己退出,避免无限循环;
Select Case 2
Case Is = 1
Dim w As Integer = Me.Width
Do
Me.Width -= 5 : w -= 5
Threading.Thread.Sleep(3)
Loop While Me.Width = w
Case Is = 2
Dim h As Integer = Me.Height
Do
Me.Height -= 5 : h -= 5
Threading.Thread.Sleep(3)
Loop While Me.Height = h
Case Is = 3
Do
Me.Opacity -= 0.05
Threading.Thread.Sleep(120)
Loop Until Me.Opacity = 0
End Select
相关问答
Q1: 如何正确理解VB.NET延时函数
第一个for完成对delay_time参数的控制vb.net延时函,即共循环多少次内部循环
第二个for(内部循环)vb.net延时函,完成对j从0到199的控制,共循环200次。
翻译成汇编就是:
(R0为传递参数)
DELAY:
MOV R1,#200
DJNZ R1,$
DJNZ R0,DELAY
RET
Q2: VB的延时1秒命令怎么写,在线给分
VB提倡的是用定时器控件(Timer)的方法。首先在窗体放入一个Timer1和Command1vb.net延时函,然后输入以下代码vb.net延时函:
Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
MsgBox "这个对话框是点击按钮1秒钟后弹出来的"
Timer1.Enabled = False
End Sub
此外还可以用API函数Sleep来延时,或者利用循环结合时间函数来延时,但它们都容易造成系统阻塞,所以不建议使用。
使用定时器控件还有一个最大好处,就是在延时期间你的程序还可以继续运行处理其vb.net延时函他事务(比如鼠标点击、键盘输入等)。而其他方法产生的延时效果,在延时期间就只能傻等,什么也做不了,甚至还有可能影响到其他程序。
Q3: VB中Timer和Doevents的问题!
Sleep是挂起式等待,对于小于一个时钟周期(一般是16ms)的等待可能是系统通过循环实现的,所以CPU使用率必然很高,另外,你sleep 1的话操作系统无法精确做到1m,所以你的代码Sleep 1实际要等上若干毫秒以后才有反应(因为1ms小于windows的一个调度周期)
解决办法是用SetTimer的这个API
在窗体里添加一个按钮,添加代码:
Private Sub Command1_Click()
TimerId = SetTimer(0, 0, 1000, AddressOf TimerProc)
End Sub
添加一个模块,添加代码
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Public TimerId As Long
Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
KillTimer 0, TimerId
Form1.Print "时间到"
End Sub
需要注意的是用户层的任何定时器设定值小于15ms时都将是不精确的
关于vb.net延时函和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






