Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / События в TreeView / 5 сообщений из 5, страница 1 из 1
29.07.2004, 16:53:08
    #32627705
DKV
DKV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События в TreeView
Есть класс описывающий TreeView (в него я запихал общие функции ) и есть форма с TreeView. И в форме и в классе описано событие NodeClick.
Если событие происходит по клику на TreeView в форме, то все нормально (событие обрабатывается и там, и там).
НО иногда надо в классе выделить определенный узел и сделать клик на нем, и надо чтоб этот клик отработал и класс и форма.

Уже думал делать с API (с посылкой сообщения окну о клике), но что-то запутался:(

С классами работаю недавно, может что-то неправильно делаю или вообще неправильный подход?
...
Рейтинг: 0 / 0
29.07.2004, 23:15:55
    #32628238
NG
NG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События в TreeView
Вопрос не очень понял, но если надо обрабатывать клик (или дблклик) узла дерева и в модуле класса и форме, содержащей дерево, то я поступаю так:
1. в модуле класса объявляю события
Public Event NodeClick(NodX As Node)
Public Event NodeDblClick(NodX As Node)

2. обрабатываю событие в классе и генерирую событие для его обработки в форме

Private Sub TV_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)

If Not (TV.HitTest(x, y) Is Nothing) Then
TV.SelectedItem = TV.HitTest(x, y)
Set TempNode = TV.SelectedItem
With TempNode
'
' здесь нужные действия
'
End With
RaiseEvent NodeClick(TempNode)
End If
End Sub

3. в событии формы NodeClick определяю, нужна-ли дополнительная обработка для узла, переданного как параметр.
...
Рейтинг: 0 / 0
30.07.2004, 08:33:32
    #32628405
DKV
DKV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События в TreeView
Как мне кажется, это немного не то
попробую объяснить
есть обработка события NodeClick в форме:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub tvObjectTree_NodeClick(ByVal Node As Object)
On Error GoTo Err_Debug
    
    DoCmd.Hourglass True
        Call LvPropLoad(Node.Key)
        Call LvLinkLoad(Node.Key)
   
Exit_Here:
    DoCmd.Hourglass False
    Exit Sub
Err_Debug:
    Resume Exit_Here
End Sub
есть обработка события NodeClick в классе:
Код: plaintext
1.
2.
3.
Private Sub modTree_NodeClick(ByVal Node As Node)
       Call CollectVisitNode(Node.Key)
End Sub

После построении дерева нужно спозиционироватся на 1 узел и сделать обработку собития NodeClick и в классе и в форме.
...
Рейтинг: 0 / 0
31.07.2004, 23:19:35
    #32630509
NG
NG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События в TreeView
Обработчики событий вызываются точно так-же как и обычные процедуры.
1. Получить ссылку на Node_1;
2.
Код: plaintext
1.
2.
call tvObjectTree_NodeClick(Node_1)
call ИмяКласса.modTree_NodeClick(Node_1)
Все!
...
Рейтинг: 0 / 0
02.08.2004, 08:09:29
    #32630773
DKV
DKV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
События в TreeView
Спасибо NG, теперь разобрался.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / События в TreeView / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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