Настройка функции «Тайм-аут» в приложении Windows Form - PullRequest
3 голосов
/ 29 июля 2010

Дау, кто-нибудь знает, как я могу встроить функцию тайм-аута в приложение Windows Form.

Приложение управляется событиями, но я подумываю как-то использовать таймер, который ведет обратный отсчет, скажем, 10 минут, итаймер тикает, затем мы опускаем пользователя.

У меня проблема в том, как я могу сбросить таймер при каждом перемещении или щелчке мыши.

Любая помощь приветствуется.

Приветствия

Ответы [ 3 ]

1 голос
/ 29 июля 2010

вы можете использовать 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 голосов
/ 29 июля 2010

Как бы плохо это не казалось, я думаю, что лучший способ для этого - использовать объект system.timer с установленным интервалом максимум в несколько миллисекунд.

То, что я видел однажды, - это использование глобальной переменной, которая будет получать время последнего действия, и эта переменная будет установлена ​​в Сейчас (с использованием глобальной функции, например) каждый раз, когда выполняется действие. В прошедшем событии таймера вы проверяете, превышает ли последнее действие последнее действие с вашим 10-минутным лимитом, и действуете ли вы соответственно.

Как и в случае приложения с несколькими формами, вы можете использовать разные таймеры в каждой форме или запустить таймер только в основной форме.

Надеюсь, это поможет.

0 голосов
/ 29 июля 2010

В настройке 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...