2010-07-29 47 views
3

讓任何人都知道如何在Windows窗體應用程序中構建超時功能。在Windows窗體應用程序中設置「超時」功能

該應用程序是事件驅動,但我想用某種方式使用一個計時器倒計時10分鐘,一個計時器滴答,然後我們超時用戶。

我遇到的問題是,如何在每次移動或點擊鼠標時重置計時器。

任何幫助表示讚賞。

乾杯

回答

1

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

您可以將它從工具箱拖到設計器表面。

使用屬性窗口將Interval屬性設置爲所需的時間間隔(毫秒),Enabled屬性應設置爲false。

對於負載設置定時器Enabled屬性爲true。

(樣品中的事件處理程序使用C#編寫的 - 我們對此深感抱歉)

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

雙擊計時器滴答事件註冊到事件,並關閉計時器滴答

形式

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

+0

這是如何與模態窗體一起使用的? – 2010-07-29 14:32:31

+0

如果'modal'表示'ShowDialog',並且您正在主窗口(Application.Run中的那個窗口)執行此代碼,則答案是 - 是的,所有模式窗口都將關閉。 – 2010-07-29 15:31:57

+0

輝煌,感謝您的幫助 – 2010-07-30 08:16:57

0

在設置timer.Interval爲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 
+0

嗨 我又會在哪裏啓動計時器? – 2010-07-29 12:48:55

+0

另外,這是如何工作的,我有多個模態窗體? – 2010-07-29 12:49:31

+0

我修改了代碼 – Florian 2010-07-29 12:58:40

0

作爲,因爲它似乎不好,我認爲,最好的辦法是最多使用system.timer對象有幾毫秒的一組間隔。

我看到的一次是使用一個全局變量,它將獲取最後一個動作的時間,並且每次執行動作時該變量將設置爲Now(使用全局函數)。在你的計時器已經過去的事件中,你檢查現在是否大於最後一次動作的10分鐘限制,並相應地採取行動。

對於多表單應用程序,您可以在每個表單上使用不同的計時器,或者只讓計時器在主窗體上運行。

希望有所幫助。

相關問題