TreeView - раскрытие подветвей по даблклику на ветви

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

TreeView - раскрытие подветвей по даблклику на ветви

Сообщение Nikita » 03.06.2003 (Вт) 13:54

хочется отключить subj, чтобы раскрывать ветви можно было только кликая на значок "+" перед названием ветви.

проблема в том что по даблклику у меня вызывается форма относящаяся к данной ветви, однако если эта ветвь содержит подветви то не только появляется форма, но и происходит сворачивание/разворачивание этих подветвей, т.е. свойство Node.expanded меняется на противоположное.

Как такое можно отловить-нейтрализовать?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 03.06.2003 (Вт) 14:03

А не попробовать ли лосить событие Treeview_Expand и в нем запрещать разворачивание нода если Treeview.HitTest(x,y).Key будет тот же что и у Node.Key?

А для того чтобы получать всегда валидные x и y координаты положения курсора мыши обрабатывать Treeview_mousemove и в нем эти глобальные переменные постоянно обновлять?

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 03.06.2003 (Вт) 14:53

событие TreeView_Expand происходит только когда ветвь разворачивается, а тут оно сворачивается, потом разворачивается,
так что так ловится не все

пока временное решение - в Node_Click в переменной сохраняю какое было node.expanded, а в Node_DblClick проверяю совпадает ли текущий Expanded со значением переменной, и если не совпадает, восстанавливаю из переменной
но выглядит это некрасиво, поскольку явно заметно как ветвь открывается и сразу обратно закрывается, хотелось бы где-то раньше ловить ..

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 03.06.2003 (Вт) 19:17

Ну, там вообще еще и парное событие есть - TreeView_Collapse
Так что если это решит твою проблему, то вперед :wink:

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 04.06.2003 (Ср) 14:51

оба и Collapse и Expand происходят после того как ветвь свернулась/развернулась, такое не подходит, хочется ДО сворачивания-разворачивания это перехватывать

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.06.2003 (Чт) 9:55

Ну что ж, тогда сабклассинг дерева с блокированием сообщения WM_MBUTTONDBLCLK
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 05.06.2003 (Чт) 10:14

мда, похоже на то ..


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 133

    TopList