代码之家  ›  专栏  ›  技术社区  ›  Richard Gale

在Windows窗体应用程序中设置“超时”功能

  •  3
  • Richard Gale  · 技术社区  · 14 年前

    任何人都知道我如何在Windows窗体应用程序中构建超时功能。

    这个应用程序是事件驱动的,但是我正在考虑使用一个计时器,它的倒计时为10分钟,一个计时器的计时,然后我们超时给用户。

    我的问题是如何在每次鼠标移动或单击时重置计时器。

    感谢您的帮助。

    干杯

    3 回复  |  直到 14 年前
        1
  •  1
  •   Itai Zolberg    14 年前

    你可以使用 System.Windows.Forms.Timer .

    您可以将它从工具箱拖到设计器图面。

    使用“属性”窗口设置 Interval 属性设置为所需的时间跨度(毫秒),则 Enabled 属性应设置为false。

    在FOR LOAD上设置计时器 启用 属性设置为true。

    (示例中的事件处理程序是使用C编写的-抱歉)

    private void Form1_Load(object sender, EventArgs e) { timer1.Enabled = true; }

    双击计时器刻度事件以注册到事件,并关闭计时器刻度上的窗体

    private void timer1_Tick(object sender, EventArgs e) { Close(); }

        2
  •  0
  •   Florian    14 年前

    在设置计时器时。间隔为0,它不工作吗?

    Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        Me.Timer1.Stop()
        Me.Timer1.Start()
    End Sub
    
        3
  •  0
  •   David Brunelle    14 年前

    尽管看起来很糟糕,但我认为最好的方法是使用System.Timer对象,该对象的设置间隔至多为几毫秒。

    我曾经看到的是使用一个全局变量,该变量将获得上一个操作的时间,并且每次执行一个操作时,该变量将设置为now(例如使用全局函数)。在计时器经过的事件中,您将检查现在是否大于10分钟限制的最后一个操作,并相应地执行。

    对于多表单应用程序,您可以在每个表单上使用不同的计时器,或者只在主表单上运行计时器。

    希望有帮助。