回 帖 发 新 帖 刷新版面

主题:简单问题,加分,加分。

我想判断一个text文本框在10s内有没有变化,要最简单的办法。

回复列表 (共10个回复)

沙发

用TIMER控件计时
其他没想到!

板凳

同意上面的观点。
在考察10s开始时,设置计时器为可用。
在计时器事件里,设置计时器不可用。
在文本框变化事件里检测计时器是否可用。

3 楼

Private Sub Text1_Change()
Timer1.Enabled = False
Timer1.Enabled = True
Label1.Caption = "change"
End Sub

Private Sub Timer1_Timer()
Label1.Caption = "no change"
End Sub

4 楼

这样似乎不行。
不论多少秒,只要文本框发生变化,标签就会显示“变化了!”

你告诉我,10秒时从什么时间起算?
我给你修改代码。

5 楼

文本框当前变化完毕就开始记时。哦,那个没太大关系,我主要关心文本框不变化时给出个警告。

6 楼

呵呵,老大快要达到20000分啊,提前祝贺。
以前vb写过些东西,不过全是网上搜或者自己琢磨,本来很简单的东西,很好实现的过程,自己也另辟它途,很绕弯。现在网络,论坛很方便,所以有时候小问题也拿出来请教大家,再次感谢各位的帮助。

7 楼

明白了,你的意思就是:任何时候,连续10秒不操作文本框,就提示?

8 楼

是啊,呵呵。

9 楼


Private Sub Form_Load()
    Text1 = ""
    Label1 = ""
    Timer1.Interval = 100
End Sub

Private Sub Text1_Change()
    Timer1.Enabled = True
    If Now() - 前次操作时间 < 1 / 8640 Then Label1 = "文本框自" & 前次操作时间 & "操作后,在10秒内被操作过!"
    前次操作时间 = Now()
End Sub

Private Sub Timer1_Timer()
    If Now() - 前次操作时间 > 1 / 8640 Then
        Timer1.Enabled = False
        Label1 = "文本框自" & 前次操作时间 & "后,操作间断超过10秒。"
    End If
End Sub

这样提示信息丰富了些,但代码多了几行

10 楼

最前面忘记了一行:
dim 前次操作时间 as date

我来回复

您尚未登录,请登录后再回复。点此登录或注册