| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .Net событие double-click как поймать

.Net событие double-click как поймать

Ответ
Поиск в этой теме
Непрочитано 28.03.2010, 22:55 #1
.Net событие double-click как поймать
dvim
 
ИТ Логистика Строительство
 
Петербург
Регистрация: 06.10.2009
Сообщений: 24

Приветствую!
Делается .Net решение под AutoCaD.
Многие вещи сделаны и найдены, (кстати именно к автокадовским задачам оказался очень красиво применим LinQ)
столкнулся с одной проблемой - необходимо перехватывать двойной лик на примитиве.
Далее. если примитив "программный" то будет выводится свое окно свойств.

Попытки решения
1 - на Lisp можно написать реактор. но из лисп функции не передать Entity в .Net - Пишется ошибка.
(можно передать координаты + тип объекта, но как его по этим параметрам найти через .Net)
2- Можно перехватывать Event на .Net
но там нашел ImpliedSelectionChanged , OnCommandWillStart ... но это не совсем то.
(можно конечно анализировать ImpliedSelectionChanged и брать последний селекшн в списке.... но это мягко говоря не красиво)

Может быть я не туда смотрю?
ну должно же перехватыватся двойное нажатие
Просмотров: 4151
 
Непрочитано 29.03.2010, 00:12
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от dvim Посмотреть сообщение
можно передать координаты + тип объекта, но как его по этим параметрам найти через .Net
А если передавать хендл объекта?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.03.2010, 01:45
#3
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Почитай: http://discussion.autodesk.com/forum...85843&#4885843
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 29.03.2010, 10:01
#4
dvim

ИТ Логистика Строительство
 
Регистрация: 06.10.2009
Петербург
Сообщений: 24
<phrase 1=


Цитата:
А если передавать хендл объекта?
- во всяком случае не получилось. Разве что если хендл именно через текст проводить.


2 Александр Ривилис -Спасибо огромное . Это работает.
Правда использует еще и com библиотеки (интересно как там совместимость между версиями када)
Но мою задачу решает :-)

Из минусов этого решения - после обработки события (в примере Млайн Едит) все равно открывается стандартное окно редактирования.
В моем примере тоже.
Как после выполнения собственного обработчика событий "убить" дефолтовый. (Именно если свой опознан)
dvim вне форума  
 
Непрочитано 29.03.2010, 11:44
#5
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от dvim Посмотреть сообщение
интересно как там совместимость между версиями када
Нормально.
Цитата:
Сообщение от dvim Посмотреть сообщение
Из минусов этого решения - после обработки события (в примере Млайн Едит) все равно открывается стандартное окно редактирования.
Нужно в CUI отключать стандартную обработку DoubleClick для тех объектов, для которых планируешь свою обработку.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 29.03.2010, 12:07
#6
dvim

ИТ Логистика Строительство
 
Регистрация: 06.10.2009
Петербург
Сообщений: 24
<phrase 1=


Ну отключить нельзя.
В том плане что у меня просто проверяется наличие X данных, и при их присутствии вызывается мой обработчик.

В принципе с наличием стандартного "после" я смирюсь ...
но лучше бы без него
dvim вне форума  
 
Непрочитано 29.03.2010, 12:34
#7
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


А если иначе. Отключить стандартную обработку. Если есть твои расширенные данные, то обрабатываешь своим приложением. Если расширенных данных нет - запускаешь стандартную обработку. Конечно помучатся придется...
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 04.04.2010, 15:13
#8
dvim

ИТ Логистика Строительство
 
Регистрация: 06.10.2009
Петербург
Сообщений: 24
<phrase 1=


В итоге решил стандартную обработку не отключать... пока по крайней мере, а просто использовать код примера - все прекрасно работает .

Тем кто будет применять это решение - учтите есть проблема с совместимостью - надо делать отдельные релизы под 2007/2010 автокад.
(как раз из за COM библиотек.... )
dvim вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > .Net событие double-click как поймать

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
на злобу дня !! zaza-noza Разное 63 22.05.2009 15:10
Как организовать событие "Закончилась минута"? kos Программирование 21 16.03.2009 12:31
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46
БРЕД СИВОЙ КОБЫЛЫ Kryaker Разное 1876 29.12.2006 23:41