在你的顶行:通用部分加上
Public hou, min, sec
因为这些变量需要全局变量。

解决方案 »

  1.   

    再加上这个
    Private Sub Form_Load()
       Timer1.Interval = 1000
    End Sub
      

  2.   

    Timer1.Interval = 1000表示一秒钟,执行一次Timer控件。
      

  3.   


    你现在在你程序的第一行加上 option explicit
    然后在第二行用楼上兄台说的 Public hou, min, sec as integer
    在你的form_load()里面做个显式的初始化,虽然不是必须 hou=0,min=0,sec=0
    然后你再看你的程序
      

  4.   

    在‘通用申明’,位置在第一行里面 加上
      Dim sec As Integer, min As Integer, hou As Integer
    另外:把时间控件的 Interval 属性 置为 1000
      

  5.   

    sec,min有没有在FORM前定义,如果没有定义,默认是本过程私有变量,当然执行一次就完事了,当然没反映啦,不过你的程序要达到显示时间目的要这样写,还是第一次看到,呵呵
      

  6.   

    这样写功能相同,但代码更简单些:Dim looptime As Long, h As Long
    Private Sub Form_Load()
    Timer1.Enabled = True
    Timer1.Interval = 1000    '可改为1试试效果
    looptime = 0
    h = 0
    End SubPrivate Sub Timer1_Timer()
    looptime = looptime + 1
    If looptime = 3600 Then looptime = 0: h = (h + 1) Mod 24
    Text1.Text = Format(TimeSerial(h, 0, looptime), "hh:mm:ss")
    End Sub
      

  7.   

    Private Sub Timer1_Timer()
    static sec as integer,min as integer,hou as integer
    sec = sec + 1
    If sec >= 60 Then
       min = min + 1
       sec = 0
    End If
    If min >= 60 Then
       hou = hou + 1
       min = 0
    End If
    If hou >= 24 Then
       hou = 0
    End If
    Text1.Text = Str$(hou) + ":" + Str$(min) + ":" + Str$(sec)
    End Sub
      

  8.   

    Private Sub Form_Load()
        Timer1.Interval = 1000
        Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
    Static sec As Integer, min As Integer, hou As Integer
    sec = sec + 1
    If sec >= 60 Then
       min = min + 1
       sec = 0
    End If
    If min >= 60 Then
       hou = hou + 1
       min = 0
    End If
    If hou >= 24 Then
       hou = 0
    End If
    Text1.Text = Str$(hou) + ":" + Str$(min) + ":" + Str$(sec)
    End Sub