Как отложить событие LostFocus в VB6 - PullRequest
0 голосов
/ 06 ноября 2019

У меня проблема с процессом, который включает в себя событие LostFocus.

Когда курсор теряет фокус из определенного текстового поля, я просто помещаю фокус обратно в это поле.

Моя проблема заключается в удалении фокуса достаточно долго, чтобы пользователь мог нажать кнопку выхода из системы. Есть ли способ перехватить событие LostFocus достаточно долго, чтобы позволить пользователю нажать кнопку выхода из системы?

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Очевидно, я не знаю общую картину здесь. Но придерживаясь только того, что вы сказали, следующее делает свое дело. Фактически событие задерживается на короткое время, что позволяет нажать кнопку:

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Text1_LostFocus()
   Sleep 100
   DoEvents

   Text1.SetFocus
End Sub
0 голосов
/ 06 ноября 2019

С помощью комбинации Timer и другого элемента управления, который находится за пределами вашей формы, вы можете достичь этого.

Private Sub Text1_LostFocus()
    Combo1.SetFocus
    ReturnFocusTimer.Enabled = True
End Sub

Private Sub ReturnFocusTimer_Timer()
    ReturnFocusTimer.Enabled = False
    Text1.SetFocus
End Sub

В этом примере Combo1 расположен за нижней частьюформа. Вы можете контролировать интервал ReturnFocusTimer так долго, как вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...