Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Борис_С от 25-11-2020, 20:23:18

Название: Как выделить часть однострочного текста
Отправлено: Борис_С от 25-11-2020, 20:23:18
Всем добрый вечер!
В однострочном тексте "Винт B.М5-6g*20.36.016 ГОСТ 1491-80" хочу выделить текст ГОСТ 1491-80.
Для элемента известно ObjectId.
Как это сделать?
Спасибо.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 25-11-2020, 21:34:38
Как это сделать?
Зачем? Не понятно дальнейшее, так что даже если выделить этот текст, то дальше с ним возможна только ручная работа.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 25-11-2020, 21:37:25
Для многострочного текста  (MText) есть класс текстового редактора: TextEditor. Для однострочного такого нет.
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 25-11-2020, 21:40:31
Текст нужно выделить, чтобы показать пользователю с каким фрагментом текста идет работа. В это время вызывается диалоговое окно, в котором пользователь для выбранного фрагмента выбирает документ из списка.
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 25-11-2020, 21:42:58
На самом деле мне не нужно выделить фрагмент. Мне нужно его высветить.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 25-11-2020, 21:50:31
Текст нужно выделить, чтобы показать пользователю с каким фрагментом текста идет работа. В это время вызывается диалоговое окно, в котором пользователь для выбранного фрагмента выбирает документ из списка.
Если будет запущен текстовый редактор, то работа остановится до момента, пока пользователь не закроет редактор и до того момента из диалогового окна пользователь ничего не выберет. Тут вероятно нужен другой подход.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 25-11-2020, 21:52:52
Борис_С,
Я думаю, что проще будет показать пользователю в этом же диалоговом окне фрагмент текста, для которого он будет выбирать "документ из списка".
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 26-11-2020, 15:58:45
Это не пойдет, т.к. выбор пользователя зависит от контекста, в котором расположен этот фрагмент.
Может быть несколько фрагментов, и для каждого из них возможен разный выбор.
Поэтому нужно, чтобы пользователь видел это фрагмент на чертеже.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 26-11-2020, 16:15:22
Поэтому нужно, чтобы пользователь видел это фрагмент на чертеже.
Значит подсвечивать нужно другим способом. Хотя это будет очень проблематично.
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 26-11-2020, 16:26:58
Я нашел, что подсвечивать весь текст можно методом Entity.Highlight(). Это уже вариант. Было бы конечно лучше, если бы можно было подсвечивать фрагмент текста.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 26-11-2020, 16:30:13
Было бы конечно лучше, если бы можно было подсвечивать фрагмент текста.
Нет. Такой возможности нет. Лучшее из того что можно придумать, это рисовать средствами AutoCAD рамочку вокруг фрагмента текста. Но это тоже не просто, так как сложно найти положение фрагмента текста в чертеже.
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 26-11-2020, 16:33:54
Почему нет. Я это проверил. Все работает.
Есть еще метод
Код - C# [Выбрать]
  1. public void Highlight(
  2.     FullSubentityPath subId,
  3.     [MarshalAs(UnmanagedType.U1)] bool highlightAll
  4. );
Он позволяет подсветить subentity (Google перевел это, как подчиненную сущность), но примеров работы с этим методом я нигде не нашел.
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 26-11-2020, 16:34:50
Я не прав. Не прочитал, к чему относится комментарий.
Название: Re: Как выделить часть однострочного текста
Отправлено: Александр Ривилис от 26-11-2020, 16:36:41
Я не прав. Не прочитал, к чему относится комментарий.
Угу. У subentity совсем другой смысл - фрагмент однострочного текста не subentity.
Название: Re: Как выделить часть однострочного текста
Отправлено: Борис_С от 26-11-2020, 16:41:13
Ясно. Спасибо. Значит буду подсвечивать весь текст.