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

ADN Club => AutoCAD .NET API => Тема начата: Александр Пекшев aka Modis от 06-01-2019, 13:08:56

Название: Предварительный просмотр таблиц
Отправлено: Александр Пекшев aka Modis от 06-01-2019, 13:08:56
Вроде не сталкивался нигде с таким, но спрошу на всякий случай
При вставке таблицы в окошке есть поле Просмотр:

(https://i.postimg.cc/ppRr549c/image.png) (https://postimg.cc/ppRr549c)

Есть ли программный доступ к этому элементу?
Может есть какие-то варианты сделать такой элемент самому?
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Ривилис от 06-01-2019, 14:26:40
Кроме этого ничего в голову не приходит: http://adn-cis.org/prosmotr-chertezha-v-wpf-palitre.html
Но это будет очень непросто.
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Пекшев aka Modis от 06-01-2019, 14:30:47
Кроме этого ничего в голову не приходит: http://adn-cis.org/prosmotr-chertezha-v-wpf-palitre.html
Но это будет очень непросто.
Да, видел это. Но это не подходит по двум причинам:
1. Работает только с версии 2015 и выше
2. На скриншоте превью генерируется из стиля таблицы. Т.е. таблица никуда ещё не вставлена Не важно, в принципе)
Видимо нет ничего подходящего
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Ривилис от 06-01-2019, 14:36:43
1. Работает только с версии 2015 и выше
Это пример сделан для версии 2015. А так должно работать и на более ранних версиях.
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Пекшев aka Modis от 06-01-2019, 14:39:01
1. Работает только с версии 2015 и выше
Это пример сделан для версии 2015. А так должно работать и на более ранних версиях.
Я проверял - не работает. Там какие-то методы использованы, которые добавлены в 2015 версии. Возможно есть аналоги и в версиях ниже, но я не стал разбираться) В принципе имею неприязнь к Windows.Forms :)
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Ривилис от 06-01-2019, 14:48:33
Александр Пекшев aka Modis,
Нашел такой класс: Autodesk.AutoCAD.Internal.TableStylePreview в acmgd.dll
Можешь поэкспериментировать.
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Пекшев aka Modis от 06-01-2019, 19:55:06
Александр Пекшев aka Modis,
Нашел такой класс: Autodesk.AutoCAD.Internal.TableStylePreview в acmgd.dll
Можешь поэкспериментировать.
Да, судя по членам класса - это вот прям оно самое. Жаль, но заставить его заработать я не смог. При банальном вот таком коде:
Код - C# [Выбрать]
  1. [CommandMethod("TablePreviewTest")]
  2. public void TestCommand()
  3. {
  4.     try
  5.     {
  6.         ShowWindow();
  7.     }
  8.     catch (Autodesk.AutoCAD.Runtime.Exception exception)
  9.     {
  10.         MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace);
  11.     }
  12. }
  13.  
  14. private static void ShowWindow()
  15. {
  16.     Autodesk.AutoCAD.Internal.TableStylePreview tableStylePreview = new TableStylePreview();
  17.     tableStylePreview.Width = 250;
  18.     tableStylePreview.Height = 250;
  19.     tableStylePreview.DataText = "This is data text";
  20.     tableStylePreview.TitleText = "This is title text";
  21.    
  22.     Form1 form1 = new Form1();
  23.  
  24.     form1.Controls.Add(tableStylePreview);
  25.  
  26.     form1.ShowDialog();
  27.    
  28. }

фаталит автокад. Причем открывается форма в которой я вижу белый квадрат 250х250 и сразу все зависает и фаталит.
Попытка добавить контрол в WindowsFormsHost также приводит к моментальному фаталу.
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Ривилис от 06-01-2019, 21:24:33
Мои попытки пока тоже ни к чему хорошему не привели. Вполне возможно, что этот класс не рабочий. Я задал вопрос в ADN DevHelp, но на положительный ответ не рассчитываю - класс для внутреннего использования.
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Ривилис от 06-01-2019, 21:45:42
Еще вот этот метод может помочь: Autodesk.AutoCAD.Internal.Utils.InvokeTableStyleDialog
Название: Re: Предварительный просмотр таблиц
Отправлено: Александр Пекшев aka Modis от 07-01-2019, 11:56:29
Еще вот этот метод может помочь: Autodesk.AutoCAD.Internal.Utils.InvokeTableStyleDialog
Посмотрел - этот метод вызывает диалог выбора табличного стиля для вставки. Тот же самый, что вызывается командой _table. Не то
Придется пока по старинке - делать png картинки (