Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 02-03-2020, 21:24:32
-
Как мне удалить столбец или строку в
у элемента класса?
Autdesk.AutoCAD.DatabaseServices.Table
-
Как мне удалить столбец или строку в
у элемента класса?
Autdesk.AutoCAD.DatabaseServices.Table
Table.DeleteColumns
Table.DeleteRows
-
Добрый вечер. Создаю таблицу. Первая строка принимает стиль "Название". Но мне данная строка не требуется. Вызываю метод Table.DeleteRows(0,1) в целях удалить первую строку. Вместо этого удаляется последняя, вся таблица как бы "съезжает" на одну строку вверх.
Ожидаю вот так (и вручную строка удаляется именно с таким результатом):
(https://i.postimg.cc/ZWyhP0wF/C.png) (https://postimg.cc/ZWyhP0wF)
А с вызовом метода Table.DeleteRows(0,1) получаю вот так:
(https://i.postimg.cc/WtHNMR2V/bad.png) (https://postimg.cc/WtHNMR2V)
где первая строка - это строка со стилем "Название" и содержание второй как бы "переехало" на нее. А этого не требуется.
Подскажите как это недоразумение победить?
-
А если попробовать поменять стиль первой строке?
-
А если попробовать поменять стиль первой строке?
Я пытался реализовать эту идею, но:
1. Во-первых, сразу в лоб не вышло. Пробовал вот так:
777: // Встроенные стили ячеек имеют имена:
778: // _TITLE, _HEADER, _DATA.
table.Rows[i].Style = "_TITLE";
Источник вдохновения: http://bushman-andrey.blogspot.com/2014/06/autocad_5.html (http://bushman-andrey.blogspot.com/2014/06/autocad_5.html)
Но поймал Exception типа eInvalidInput и решил пробовать пункт 2.
Если подскажете как назначать стиль строке - буду признателен.
2. Во-вторых, я предположил что метод удаления строки в таблице где-нибудь когда-нибудь еще обязательно пригодится, и неплохо было бы его научиться его применять.
-
https://adn-cis.org/forum/index.php?topic=9111.msg37184#msg37184 ?
-
И я бы проверил направление, в котором строится таблица: снизу вверх или сверху вниз. Может, поэтому DeleteRows срабатывает неверно (но это на уровне предположений)
-
Alexandr1993,
Ты удаляешь строку таблицы случайно не в той же транзакции, в которой создаешь таблицу?
-
Александр, именно так. Так понимаю в этом и кроется причина моих бед. Нужно разделить транзакции: одна под создание таблицы, вторая для редактирования таблицы? Если не сложно, можете привести любой абстрактный пример, я бы его адаптировал под свои нужды. Заранее благодарю.
-
И я бы проверил направление, в котором строится таблица: снизу вверх или сверху вниз. Может, поэтому DeleteRows срабатывает неверно (но это на уровне предположений)
Направление было корректное, по ссылке выше (из ответа #5) сделал настройку стилей - все получилось, благодарю за наводку.