Добрый день! Подскажите, имеется таблица. При программном изменении ее размеров (например, удаление части колонок и столбцов), границы удаленных ячеек продолжают отображаться. За них можно даже выделить таблицу, хотя реально ячеек там нет. Если скопировать и вставить такую таблицу, то её копия уже отображается правильно. Regen (программный и ручной) не помогает. В чем может быть ошибка? Видео с ScreenCast создать не получилось (ошибка при uploading).
Исходная таблица, например, 2х2
После запуска удаления одного столбца и одной колонки получаем
При копировании таблица (при перетаскивании) всё еще отображается как 2х2
но уже при вставке копии становится 1х1
Код прикладываю
public void CreateTable(string DevName, ObjectId TabObjId, List<string> CableNames) // Где TabObjId - ObjectId существующей таблицы
{
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
int TabLength = CableNames.Count();
Transaction tr = db.TransactionManager.StartTransaction();
using (tr)
{
try
{
Table tab = tr.GetObject(TabObjId, OpenMode.ForRead) as Table;
tab.UpgradeOpen();
tab = ClearTable(tab);
Cell c;
for (int i = 1; i < tab.Rows.Count; i++)
tab.DeleteRows(1, i);
for (int i = 1; i < tab.Columns.Count; i++)
tab.DeleteColumns(1, i);
Cell c = tab.Cells[0, 0];
tab.GenerateLayout();
//tab.DowngradeOpen();
tr.Commit();
ed.Regen();
}
catch (System.Exception ex)
{
Autodesk.AutoCAD.Runtime.Exception ex2 =
ex as Autodesk.AutoCAD.Runtime.Exception;
if (ex2 != null && ex2.ErrorStatus != ErrorStatus.WasOpenForUndo)
{
ed.WriteMessage("\nAutoCAD exception: {0}", ex2);
}
else if (ex2 == null)
{
ed.WriteMessage("\nSystem exception: {0}", ex);
}
}
}
}