|
|
|
События в TreeView
|
|||
|---|---|---|---|
|
#18+
Есть класс описывающий TreeView (в него я запихал общие функции ) и есть форма с TreeView. И в форме и в классе описано событие NodeClick. Если событие происходит по клику на TreeView в форме, то все нормально (событие обрабатывается и там, и там). НО иногда надо в классе выделить определенный узел и сделать клик на нем, и надо чтоб этот клик отработал и класс и форма. Уже думал делать с API (с посылкой сообщения окну о клике), но что-то запутался:( С классами работаю недавно, может что-то неправильно делаю или вообще неправильный подход? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2004, 16:53:08 |
|
||
|
События в TreeView
|
|||
|---|---|---|---|
|
#18+
Вопрос не очень понял, но если надо обрабатывать клик (или дблклик) узла дерева и в модуле класса и форме, содержащей дерево, то я поступаю так: 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 определяю, нужна-ли дополнительная обработка для узла, переданного как параметр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2004, 23:15:55 |
|
||
|
События в TreeView
|
|||
|---|---|---|---|
|
#18+
Как мне кажется, это немного не то попробую объяснить есть обработка события NodeClick в форме: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. После построении дерева нужно спозиционироватся на 1 узел и сделать обработку собития NodeClick и в классе и в форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 08:33:32 |
|
||
|
События в TreeView
|
|||
|---|---|---|---|
|
#18+
Обработчики событий вызываются точно так-же как и обычные процедуры. 1. Получить ссылку на Node_1; 2. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2004, 23:19:35 |
|
||
|
|

start [/forum/topic.php?fid=45&tid=1672790]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 284ms |

| 0 / 0 |
