想实现的功能是:我点那Label时他就自动每隔一段时间加一个数很简单,在里面加一个Label1再在里面写:Option ExplicitPrivate Sub Label1_Click()
Dim i, j, k As Integer
Do
 For i = 1 To 500 For k = 1 To 10000
 k = k + 1
 Next k
 i = i + 1
 Next i
 j = j + 1
  Label1.Caption = j
 Loop
End Sub
结果运行程序,点了那Label,结果程序什么也不显示,等了一分钟什么也没看到出现关掉那程序时系统提示:程序未响应,真不知道那里面出了什么错了

解决方案 »

  1.   

    不是没显示,而是循环让显示不正常(Caption成了一片白色),可用以下方法替代:
    Option Explicit
        Public j As Long
        
    Private Sub Form_Load()
        Timer1.Enabled = False
        Timer1.Interval = 1000  '1秒为间隔
        j = 0    '赋初值
    End SubPrivate Sub Form_Terminate()
        Timer1.Enabled = False
    End SubPrivate Sub Label1_Click()
        Timer1.Enabled = True  '开Timer
    End SubPrivate Sub Timer1_Timer()
        Label1.Caption = j   '每一次时间到时Label1的Caption赋一次j值
        j = j + 1
    End Sub
      

  2.   

    晕死,我就是用这程序来测Timer控件的
    本来我用了变速齿轮来改变Timer,没作用
    想来测测循环的方法,看能不能起作用
    你一加了Timer控件,白费劲了
      

  3.   

    freetour (南宫飞云) 兄:不知道你改完了没有,如果没有的话,可以看看我这个是否能用Option ExplicitPrivate Sub Label1_Click()
    DoEvents
    Dim i, j, k As Integer
    Do While Not (DoEvents = 0)
     For i = 1 To 2000 For k = 1 To 10000
     k = k + 1
     Next k
     i = i + 1
     Next i
     j = j + 1
      Label1.Caption = j
     Loop
    End Sub
      

  4.   

    //程序未响应,真不知道那里面出了什么错了是你的循环次数太多//我点那Label时他就自动每隔一段时间加一个数
    程序中的j应该声明为静态变量或窗体级变量
      

  5.   

    Option ExplicitPrivate Sub Label1_Click()
    Dim i, j, k As Integer
    Do
     For i = 1 To 500 For k = 1 To 10000
     
     DoEvents k = k + 1
     Next k
     i = i + 1
     Next i
     j = j + 1
      Label1.Caption = j
     Loop
    End Sub
      

  6.   

    Label1.Caption = j
    '这里没有doevents的话,Label之类的控件没有时间重新绘制
     Loop
    End Sub
      

  7.   

    Do
    LOOP死循环.
    另外,要使caption有效果,就必须加doevents.
      

  8.   

    循环里加DoEvents,楼上几个说的都没错,hoho