我在程序运行的过程中使label.caption一直在改变,可是却显示不出来,只是一个白片。听一个朋友说是label.caption的值变化太快而显示不过来,需要缓冲一下。请问各位高手有什么点子解决这个问题??小弟先谢谢了!!

解决方案 »

  1.   

    我的想法和你楼上的一样。由于CPU的处理速度过快,所以显示的速度也过快,如果你在第一次显示和第二次显示之间插入1秒到2秒的时间间隔的话,如果能看见,那么就肯定是这个原因了。
      

  2.   

    不知你是怎么做的,我用时钟控件试了一下是可以的。timer1的interval=1000
    Dim i%
    Private Sub Timer1_Timer()
    i = i + 1
    Label1.Caption = i
    If i = 10 Then Timer1.Enabled = False
    End Sub
      

  3.   

    不用label,用其它方法,在窗体上画出字
      

  4.   

    for i=1 to 100
      lbl.caption=str(i)
      doevents()
    next
      

  5.   

    是这样的,我的代码有数据库访问,也有文件读写,在访问数据库的时候我想在label上显示我在访问数据库,在写文件的时候,显示读写文件及其文件名称.也有ftp上传文件,上传过程中显示上传的文件名称及其操作.如果只是上传部分,显示没有问题的.可是把数据库访问部分和写文件部分加上就是不能显示,就是一片白色,求一个解决方法.等~~~~~~~~~~~~
    谢谢
      

  6.   

    很有可能是你的Label字的前景色是白的
      

  7.   

    不是的,label 的前景色是红色的,背景是白色的.
      

  8.   

    先改变caption,再doevents,然后才进行实际的操作。。
      

  9.   

    在label1.caption=...
    之后加上
    doevents

    label1.refresh
      

  10.   

    楼主不说我倒还一直没关注,刚我把Timer1.Interval的值从1到1000都测了一下
    发现1-10变速是一样的(1秒钟刷100次),10-1000都有明显变化(1000/设置值的次数)
    难道说刷的太快就会延迟? 不过没有您说的白板现象
    Dim i
    Private Sub Form_Load()
    Timer1.Interval = 10
    End SubPrivate Sub Timer1_Timer()
    i = i + 1
    Label1.Caption = i
    End Sub
      

  11.   

    没什么好办法有,有时候就是这样,觉得VB还是有不小的缺陷。要么把timer1.interval调的大一些,让系统能反映过来,要么这样:timer1_timerlabel1.caption="*****"doeventsend sub