[VB]这个电子时钟怎么这么迟钝?

Carneades 2009-02-01 16:50

这是一个变色电子时钟,按键调整颜色。
但是时钟只有在调整颜色的瞬间变化。请高手看下,究竟怎么回事。
代码如下:
Private Sub form1_load()
Label1.Caption = Time
End Sub
Private Sub Command1_Click()
Label1.ForeColor = vbRed
Label1.Caption = Time
End Sub
Private Sub Command2_Click()
Label1.ForeColor = vbBlue
Label1.Caption = Time
End Sub
Private Sub command3_click()
End
End Sub

等电子的氯 2009-02-01 16:55

[i=s] 本帖最后由 等电子的氯 于 2009-2-1 16:58 编辑 [/i]

你每次CommandX_click(X=1, 2)之后才改Label1.Caption,难怪呢。。
用个Timer吧~

加个Timer1,把Interval改成(0,1000]里的实数就行啦~

Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub

碳酰氯 2009-02-01 16:58


应该用Timer

Francisco 2009-02-01 16:59

你应该用个timer控件。

Carneades 2009-02-01 17:05

[i=s] 本帖最后由 Carneades 于 2009-2-1 17:07 编辑 [/i]

这个可以自己走起来?我今晚试试看。
谢谢楼上诸位!

等电子的氯 2009-02-01 17:07

当然可以自己走起来。。- -

bookgangtie 2009-02-02 12:45

板凳、板床正解,如果不加timer所显示的时间就是load、command1和2触发时的时间。
timer时间间隔设为一秒就好了

dzx911 2009-02-02 16:41

楼上的都是全才.....

这个都懂.......

bookgangtie 2009-02-02 18:41

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 1000
Label1.Text = Format$(Now, "yyyy年dd月mm日hh时mm分ss秒")
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Format$(Now, "yyyy年dd月mm日hh时mm分ss秒")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.ForeColor = Color.Red
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Label1.ForeColor = Color.Blue
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class
哎,终于搞出来了,.net的语法变了许多,而且生成的文件比较大一点

topbluecat 2009-02-03 03:32

n年以前用过VB......貌似Timer的效率是很低的.....