Событие при нажатии левой кнопкой мыши

Автор Тема: Событие при нажатии левой кнопкой мыши  (Прочитано 8717 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн VitaliyBАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 63
  • Карма: 2
Добрый день! у меня есть ряд команд, которые определенным образом фильтруют выбор объектов.

Код - C# [Выбрать]
  1.  [CommandMethod("вв_(ПТО_№3:предыдущий выбор)")]
  2.         public void ViborLast()
  3.         {
  4.  
  5.             Document doc = acadApp.DocumentManager.MdiActiveDocument;
  6.             Database db = doc.Database;
  7.             Editor ed = doc.Editor;
  8.                 TypedValue[] acTypValAr = new TypedValue[2];
  9.                 acTypValAr.SetValue(new TypedValue((int)DxfCode.Start, FiltrPerem.nameObj), 0);
  10.                 acTypValAr.SetValue(new TypedValue((int)DxfCode.LayerName, Layers.ActiveLayerName()), 1);
  11.                 SelectionFilter acSelFtr = new SelectionFilter(acTypValAr);
  12.                 PromptSelectionResult acSSPrompt;
  13.                 acSSPrompt = ed.GetSelection(acSelFtr);
  14. //далее обработка выбора
  15. }
  16.  

Хочется сделать условие (например checkBox на форме), при котором при нажатии левой кнопки мыши вместо обычной секущей рамки выбора autocad срабатывала бы эта команда. Такое возможно?
« Последнее редактирование: 22-10-2021, 14:46:32 от VitaliyB »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
acSSPrompt = ed.SelectImplied();
Это зачем?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
при котором при нажатии левой кнопки мыши вместо обычной секущей рамки выбора autocad срабатывала бы эта команда
При нажатии левой кнопки мыши где и когда? В каком состоянии AutoCAD в этот момент?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн VitaliyBАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 63
  • Карма: 2
посмотрел в студии - у меня эта строчка там закомментирована. не удалил при переносе сюда, сейчас поправлю.

Оффлайн VitaliyBАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 63
  • Карма: 2
автокад в обычном состоянии своего покоя. сейчас попробую объяснить подробнее:
1. я сделал палитру, в которую записал необходимую мне информацию.
2. Состояние автокада - состояние покоя. То есть обычный режим работы автокада: нажал левую кнопку мыши - включил стандартный режим выбора- потянул мышь-выбрал объекты в области рамки.
3. Я хочу, чтобы при условии включенного чекбокса при левом нажатии мыши вместо вот этой стандартной возможности выбора включалась моя команда [CommandMethod("вв_(ПТО_№3:предыдущий выбор)")].




Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
VitaliyB,
Теоретически это возможно, хотя и с массой ограничений. Практически - очень рекомендую от этого отказаться и не портить стандартное поведение AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн VitaliyBАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 63
  • Карма: 2
понял, спасибо

Отмечено как Решение VitaliyB 22-10-2021, 19:17:38

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я бы рекомендовал просто использовать команды для того, что ты собираешься делать. То же, что ты предполагал сделать очень трудоёмко. Кроме того я не уверен, что всё необходимое для этого есть в AutoCAD .NET API - в ObjectARX есть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн VitaliyBАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 63
  • Карма: 2
Я понял - "овчинка выделки не стоит". Буду использовать команды. В общем-то я сейчас так и делаю. Воспользуюсь Вашим советом, спасибо