vb中循环的菜鸟问题
来源:百度知道 编辑:UC知道 时间:2024/05/27 10:47:22
1.如何让程序在计算时不出现如上症状?(我把do event放在do while后面,似乎不起作用)
2.如何在计算时显示i的值?如:label1.caption = str(i),现在的情况下这句语句没有作用。
3.如何对循环进行计时?我用两次timer相减,得到的数字很大,不知道是以什么作为单位的……
4.如何做一个按钮,点击即刻退出循环?
对于第2个问题:label中的内容在循环时并没有改变,似乎是“没赶上”……我分析不出原因……
还有,如何对timer返回的值与“秒”换算?
1、需要将DoEvents放在循环体内也就是:
Do
.....
DoEvents
while .....
2、不太明白,是循环的时候label不能及时显示?
3、Timer函数返回值的数据类型是Single
4、可以定义一个Flag,如:
Public Flag1 as boolean
按钮的代码里加入:Flag1=True
然后再在循环体内检查Flag1的值,如果为True则退出循环,示例代码如下:
Option Explicit
Public Flag1 As Boolean
Private Sub Command1_Click()
Flag1 = True
End Sub
Private Sub Form_Load()
Me.Show
Do
If Flag1 = True Then Exit Do
DoEvents
Loop
MsgBox "循环已经退出"
End Sub
=====================================
对于第二个问题,加了DOEVENTS后,如果你的循环次数比较少,由于计算机执行速度很快,你将看不到它的变化,准确来说是看不清;如果你非要给使用者展示这个变化过程,建议你使用延时,但这样你的程序的效率便会变得很低。下面给你一个延时的API函数:
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
你在DO....While....的循环体内加入“Sleep 毫秒数”即可(毫秒数为Long类型)
至于Timer函数返回的值本来就是秒,两次Timer值相减,得到的便是间隔秒数。
1,试下加入Doevents语句
2和3你都没给出代码,不知道你什么原因
4,在循环体里面可以用exit f