powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GotFocus для формы не работает (: почему-то
12 сообщений из 12, страница 1 из 1
GotFocus для формы не работает (: почему-то
    #33126956
gav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уажаемые разъясните пож. :

Есть форма, у которой нужно обновлять данные по событию "Получение фокуса"

Но! Обработчик не срабатывает на событие.

А это:
Код: plaintext
1.
2.
3.
4.
Private Sub Form_GotFocus()
Stop
End Sub

пролетает без остановки.
Почему???

Form_LostFocus тоже не работает (:
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33127066
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, не срабатывает. Интересно почему. Глюк?!

Ну я так решил это:
отслеживаю АПИашкой: на форму кинь таймер, поставь его в 10 милисек и такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Option Explicit

Private Declare Function GetForegroundWindow Lib "user32" () As Long

Private Sub Timer1_Timer()
    Static blPerformed As Boolean
    
    
    
    If GetForegroundWindow = Me.hWnd Then
        If Not blPerformed Then
            MsgBox "activated"
            
            blPerformed = True
        End If
    Else
        blPerformed = False
    End If
End Sub
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33127216
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Form_GotFocus не выполняется потому что фокус получает не она, а контрол на ней. Недавно этот вопрос обсуждался.
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33127320
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тогда событие Form_GotFocus и Form_LostFocus?
И обсуждалось, как раз таки, это событие для контроля, а не для формы. Вот.
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33127370
gav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем кто откликнулся,
Скажите пож., а как лучше отследить собыитие получение фокуса формой после закрытия предыдущей отработавшей формы?

arseny, спасибо за код, но хочестя попроще
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128072
gav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые!

Возвратился опять к вопросу обработки события получения/потери формой фокуса (Form_GotFocus/ Form_LostFocus).

Попробовал. кстати, код arseny'я. Работает нормально, но только для SDI приложений. У меня MDI, API-функция GetForegroundWindow возращает текущим все время имя основного окна (MDI), соотв. код не работает.

Маловероятно что пропуски (Form_GotFocus/ Form_LostFocus) глюк, скорее есть к-л тонкость. Если фокус, как писал, Antonariy получает контрол на форме, то событие получения фокуса формой=событию получения фокуса текущим после открытия контролом, но это также не отрабатывает.

Или все же глюк?

PS. Что-то у VB многовато кривоты в обработке событий, уже задолбало. Наверное, пора на Delphi. :)
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128202
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй вместо GetForeGroundWindow:
Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
Сам не попробывал, не работал с MDI, не знаю, как добавить формы в MDI :)
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128210
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...есть ещё и Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long
Ну, в общем, открой APIGuide может чё ещё найдёшь.
А вообще-то, есть тут люди на форуме, которые намного больше понимают в этих функциях. Но что-то они молчат, как партизаны. :)) Время отпусков.
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128395
Гегель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gav
Маловероятно что пропуски (Form_GotFocus/ Form_LostFocus) глюк, скорее есть к-л тонкость. Если фокус, как писал, Antonariy получает контрол на форме, то событие получения фокуса формой=событию получения фокуса текущим после открытия контролом, но это также не отрабатывает.

Почему, нормально отрабатывает
gav
Или все же глюк?
PS. Что-то у VB многовато кривоты в обработке событий, уже задолбало.
Примеры можно? А то я что-то не так делаю, никак кривоту не найду.
gav
Наверное, пора на Delphi. :)
на assembler :-)
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128458
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открытие формы
 Open
 Load
 Resize
 Activate
 GotFocus – если на форме нет активного управляющего элемента
 Current
Если на форме есть активный элемент:
1 Form
a) Open
b) Load
c) Resize
d) Activate
e) Current
2 Control
a) Enter
b) GotFocus
Закрытие формы
 Unload
 LostFocus – если на форме нет активного управляющего элемента
 Deactivate
 Close
Если на форме есть активный элемент:
1 Control
a) Exit
b) LostFocus
2 Form
a) Unload
b) Deactivate
c) Close
При переключении между формами (form1form2):
 form1.Deactivate
 form2.Activate
Deactivate происходит при переключении на другое окно Access и не происходит при переключении на окно другого приложения, окно диалога или форму, у которой PopUp = Yes. При переключении на открытую форму с помощью OpenForm событие Open не происходит.
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128508
Гегель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MLeonDeactivate происходит при переключении на другое окно Access и не происходит при переключении на окно другого приложения, окно диалога или форму, у которой PopUp = Yes.
Речь же, вроде, о VB? Или я форумом ошибся?
...
Рейтинг: 0 / 0
GotFocus для формы не работает (: почему-то
    #33128773
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C MDI используй Activate/Deactivate. Если закрываешь последний mdi-child deactivate не сработает.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GotFocus для формы не работает (: почему-то
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]