powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как отловить события контрола, который находится в другой форме?
8 сообщений из 8, страница 1 из 1
Как отловить события контрола, который находится в другой форме?
    #32617635
alex_pf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Акс.97

Как отловить события контрола, который находится в другой форме, или же той формы?
В форме frm_1 объявляю переменную уровня формы с WithEvents.
По нажатию кнопки открываю новый экземпляр формы frm_2.
Хочу в модуле frm_1 отловить событие Open формы frm_2.
Деляю суб frm_2_var_Open. Он не запускается при открытии frm_2.
Я что-то не так сделал или так нельзя?
Код ниже. Пример приаттачен.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Option Compare Database
Option Explicit

Dim WithEvents frm_2_var As Form

Private Sub btn_1_Click()
    Set frm_2_var = New Form_frm_2
    frm_2_var.Visible = True
End Sub

Private Sub frm_2_var_Open(Cancel As Integer)
    MsgBox "Opened"
End Sub
...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32617779
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я поленился скачивать пример, но в свойстве события должно стоять [Event Procedure]. Можно занести в конструкторе, а можно программно.
...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32617792
Exquisite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве в Аксе97 есть WithEvents? Проект компилировали? И что вам сказали? Или это я путаю с 95? Хм...
...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32617798
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExquisiteА разве в Аксе97 есть WithEvents? Проект компилировали? И что вам сказали? Или это я путаю с 95? Хм...

уже есть вот хэлп от acc97
Билл
Применяется на уровне модуля для описания общих переменных и выделения памяти.

Синтаксис

Public [WithEvents] имяПеременной[([индексы])] [As [New] тип] [,[WithEvents] имяПеременной[([индексы])] [As [New] тип]] . . .

Синтаксис инструкции Public содержит следующие элементы:

Элемент Описание
WithEvents Необязательный. Ключевое слово, указывающее, что имяПеременной является объектной переменной, которая используется при отклике на события, генерируемые объектом ActiveX. Применяется только в модулях класса. Пользователь имеет возможность описать с помощью ключевого слова WithEvents произвольное количество отдельных переменных, однако при этом не допускается создание массивов. Не допускается также использование ключевого слова New с ключевым словом WithEvents.
...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32617800
Exquisite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... Сорри... Ретируюсь :)
И... это... Shuhard, спасибо :)
...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32617803
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гетц т1 гл 6
НЕ СПРАШИВАЙ МЕНЯ КАК ЭТО РАБОТАЕТ
привожу кусок - видимо надо в модуле класса прицепить как верно заметил Саныч "[Event Procedure]"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Public Property Set AvailableLst(lst As ListBox)
    Set mlstAvailable = lst
    mlstAvailable.OnDblClick = "[Event Procedure]"
    mlstAvailable.BoundColumn =  0 
End Property

Public Property Get SelectedLst() As ListBox
    Set SelectedLst = mlstSelected
End Property

Public Property Set SelectedLst(lst As ListBox)
    Set mlstSelected = lst
    mlstSelected.OnDblClick = "[Event Procedure]"
    mlstSelected.BoundColumn =  0 
End Property

Public Property Get AddOneCmd() As CommandButton
    Set AddOneCmd = mcmdAddOne
End Property

Public Property Set AddOneCmd(cmd As CommandButton)
    Set mcmdAddOne = cmd
    mcmdAddOne.OnClick = "[Event Procedure]"
End Property

Public Property Get AddAllCmd() As CommandButton
    Set AddAllCmd = mcmdAddAll
End Property

Public Property Set AddAllCmd(cmd As CommandButton)
    Set mcmdAddAll = cmd
    mcmdAddAll.OnClick = "[Event Procedure]"
End Property

Public Property Get DelOneCmd() As CommandButton
    Set DelOneCmd = mcmdDelOne
End Property

Public Property Set DelOneCmd(cmd As CommandButton)
    Set mcmdDelOne = cmd
    mcmdDelOne.OnClick = "[Event Procedure]"
End Property

Public Property Get DelAllCmd() As CommandButton
    Set DelAllCmd = mcmdDelAll
End Property

Public Property Set DelAllCmd(cmd As CommandButton)
    Set mcmdDelAll = cmd
    mcmdDelAll.OnClick = "[Event Procedure]"
End Property

Public Property Get BumpUpCmd() As CommandButton
    Set BumpUpCmd = mcmdBumpUp
End Property

Public Property Set BumpUpCmd(cmd As CommandButton)
    Set mcmdBumpUp = cmd
    mcmdBumpUp.OnClick = "[Event Procedure]"
End Property

Public Property Get BumpDownCmd() As CommandButton
    Set BumpDownCmd = mcmdBumpDown
End Property

Public Property Set BumpDownCmd(cmd As CommandButton)
    Set mcmdBumpDown = cmd
    mcmdBumpDown.OnClick = "[Event Procedure]"
End Property

...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32617811
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
яЯ поленился скачивать пример, но в свойстве события должно стоять [Event Procedure]. Можно занести в конструкторе, а можно программно.
А теперь скачал. Дело действительно в этом.
...
Рейтинг: 0 / 0
Как отловить события контрола, который находится в другой форме?
    #32618147
Фотография SergeySV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже вчера об этом подумал и таки скачал примерчик и сильно удивился, когда обнаружил что не все события так доходят, например с Click все прошло на ура,... ну Open это вообще конечно стремное событие, форма токо грузится, контролов нет и другие приколы, поэтому я стал проверять на Load - пусто, событие не передается, взял тогда Resize, он по схеме после Load должен идти, результат - после загрузки событие не передалось, а когда потянул мышкой за край формы, то заработало..... вообщем я пришел к мысле что не все так просто, видимо до полной загрузки формы, WithEvents не работает что-ли, причем полная загрузка - это не сразу после Load а видимо весь цикл с Resize-Activate-..

попробуйте поэкспериментировать сами... (я смотрел на Acc2002)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как отловить события контрола, который находится в другой форме?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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