button的click事件,是进行3重循环的计算,需要耗费很长时间,这里我想 在form上加个lable 提示用户 耐心等待。Private Sub btnND_Click()
   LabTip.visible = true
   LabTip.caption = "计算中,请稍后..."
    '下面开始复杂的计算。
    ....
   ' 计算完毕
   LabTip.visible = false
       
end sub
可是效果并不好,往往一点按钮 ,机子就好象进入死机状态一样, 根本没机会显示 我那个lable,等算完了,反而出来了 。
请赐教。

解决方案 »

  1.   

    多加几个DoEvents:DoEvents:DoEvents
      

  2.   

    那样的话DoEvents语句要加在循环里面,具体是那一重循环请自己选择。
      

  3.   

    添加一个模式窗体,开始计算时先显示该窗体,把计算的代码移动到该窗体的 Load 事件,窗体的显示是一个标明运动中的图标或者动画,例如 Windows 的沙漏。计算完毕后把结果赋值给主窗体的一个变量,然后卸载模式窗体。
      

  4.   

    加进度条比较好,加DoEvents可能会使用心急的用户再次按下button,你若不会控制会很麻烦!若以上都不会,最简单的是在
    LabTip.caption = "计算中,请稍后..."
    后加上一句
    LabTip.Refresh
    可让信息强制显示。
      

  5.   

    加进度条
    鼠标变形
    还要在循环里面加doevent
      

  6.   

    Private Sub btnND_Click()
       LabTip.visible = true
       LabTip.caption = "计算中,请稍后..."
       doevent
        '下面开始复杂的计算。
        ....
       ' 计算完毕
       LabTip.visible = false
           
    end sub
      

  7.   

    Private Sub btnND_Click()
       If MousePointer = vbHourglass Then Exit Sub
       MousePointer = vbHourglass   LabTip.visible = true
       LabTip.caption = "计算中,请稍后..."
       DoEvents
        '处理
        DataShowProcess    
        ....
       ' 计算完毕
       LabTip.visible = false
       MousePointer = vbDefault 
       
    end sub