powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / событие treeView - выбор пункта
13 сообщений из 13, страница 1 из 1
событие treeView - выбор пункта
    #32170642
Фотография саша кочанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чего-то я недопонимаю или просто не знаю:
на какое событие и как мне навесить обработку, если пользователь кликнул по узлу?
Спасибо.
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170795
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так
Public WithEvents tr As MSComctlLib.TreeView


Private Sub Form_Open(Cancel As Integer)
Set tr = ActiveXCtl1.object
End Sub


Private Sub tr_Click()
MsgBox "zzz"
End Sub

Private Sub tr_NodeClick(ByVal Node As MSComctlLib.Node)
MsgBox "zzz"

End Sub

А можно и просто создать sub
Private Sub ActiveXCtl1_NodeClick()
MsgBox "zzz"
End Sub
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170813
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С кликами - это нормально. Но! Ломаю голову как отловить событие, если пользователь "путешествует" по узлам с помощью клавы (управления курсором)? Конечно, можно отлавливать событие "нажатие клавиши", но может есть попроще?
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170826
Фотография саша кочанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если я правильно понял то ActiveX компонента достаточно написать процедуру, назвав ее соответствующим образом и будет обрабатываться специфическое событие ActiveX компонента?
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170830
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
также как и событие, например TextBoxa формы.
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170834
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Public WithEvents tr As MSComctlLib.TreeView

Private Sub Form_Open(Cancel As Integer)
Set tr = ActiveXCtl1.object
End Sub


Private Sub tr_KeyPress(KeyAscii As Integer)
MsgBox "клава"
End Sub
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170838
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2саша кочанов
Да, только надо знать точно как называется обработчик события..
Лучше помоему через withevents делать
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170900
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или в модуле формы выбрать этот контрол в списке, затем в другом - событие.

Ден
я писал: "...можно отлавливать событие "нажатие клавиши", но может есть попроще ?". Как отлавливать событие "нажатие" я знаю. А например, что-нибудь типа SetFocus для Nodes - увы!!!
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170929
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Витал
С кликами - это нормально. Но! Ломаю голову как отловить событие, если пользователь "путешествует" по узлам с помощью клавы (управления курсором)? Конечно, можно отлавливать событие "нажатие клавиши", но может есть попроще?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub CategoriesTree_NodeClick(ByVal Node As Object)
    On Error GoTo Sub_Err
    Me!Category_id = s2k(Node.Key)
    Me!Products.Form.InputParameters = Me!Products.Form.InputParameters
Sub_Exit:
    Exit Sub
Sub_Err:
    Beep
    MsgBox Err.Description
    Err.Clear
    Resume Sub_Exit
End Sub

Событие NodeClick оьработает не только при кликаньи в ноду мышкой, но и при переходе по нодам с помощью клавиатуры.

Как отлавливать событие "нажатие" я знаю. А например, что-нибудь типа SetFocus для Nodes - увы!!!
Методы .EnsureVisible и .Selected обьекта Node
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32170974
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Pavel

>Me!Category_id = s2k(Node.Key)

s2k - это ты Key парсишь?
У меня не много проще - к ключу (цифирка) справа добавляю любой символ (у меня это константа, но роли не играет), а когда надо достать, то использую встроенную функцию Val:Me!Category_id = Clng(Val(Node.Key)). Работает быстро, во всяком случае быстрее чем собственное творчество.

З.Ы.
Извини, если мой совет не в кассу :)
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32171000
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо пребольшое!!! Не догадался, что нодеклик и клаву уважает.
А что-нибудь типа SetFocus для Nodes , которое - увы и нужно то было, чтобы определить какая нода выбранная (не кликом).
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32171036
Фотография Ден
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Витал
А чтобы определить что выбрано, так там есть свойство selected (если не ошибаюсь), где хранится выбранный Item
...
Рейтинг: 0 / 0
событие treeView - выбор пункта
    #32171112
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor
s2k - это ты Key парсишь?
Оно самое. Я в скорость не упирался, но к совету прислушаюсь, завтра потестирую.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / событие treeView - выбор пункта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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