Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GotFocus для формы не работает (: почему-то / 12 сообщений из 12, страница 1 из 1
21.06.2005, 15:22:36
    #33126956
gav
gav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
Уажаемые разъясните пож. :

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

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

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

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

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

Ну я так решил это:
отслеживаю АПИашкой: на форму кинь таймер, поставь его в 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
21.06.2005, 16:34:13
    #33127216
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
Form_GotFocus не выполняется потому что фокус получает не она, а контрол на ней. Недавно этот вопрос обсуждался.
...
Рейтинг: 0 / 0
21.06.2005, 17:03:45
    #33127320
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
А зачем тогда событие Form_GotFocus и Form_LostFocus?
И обсуждалось, как раз таки, это событие для контроля, а не для формы. Вот.
...
Рейтинг: 0 / 0
21.06.2005, 17:21:28
    #33127370
gav
gav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
Спасибо всем кто откликнулся,
Скажите пож., а как лучше отследить собыитие получение фокуса формой после закрытия предыдущей отработавшей формы?

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

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

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

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

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

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

Почему, нормально отрабатывает
gav
Или все же глюк?
PS. Что-то у VB многовато кривоты в обработке событий, уже задолбало.
Примеры можно? А то я что-то не так делаю, никак кривоту не найду.
gav
Наверное, пора на Delphi. :)
на assembler :-)
...
Рейтинг: 0 / 0
22.06.2005, 11:44:22
    #33128458
MLeon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
Открытие формы
 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
22.06.2005, 12:01:57
    #33128508
Гегель
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
MLeonDeactivate происходит при переключении на другое окно Access и не происходит при переключении на окно другого приложения, окно диалога или форму, у которой PopUp = Yes.
Речь же, вроде, о VB? Или я форумом ошибся?
...
Рейтинг: 0 / 0
22.06.2005, 13:30:22
    #33128773
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GotFocus для формы не работает (: почему-то
C MDI используй Activate/Deactivate. Если закрываешь последний mdi-child deactivate не сработает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / GotFocus для формы не работает (: почему-то / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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