T.Willey 发表于 2021-5-27 00:29:09

创建表的程序在以后读取时会在AutoCAD中崩溃(解决方案,仅供参考)

我创建了一个表,并不是所有的单元格都被填充。它有10列。如果有人在表格中添加了新项目,当我回来阅读表格时,它会使acad崩溃,而不会被抓到。这可能是因为一些单元格是块单元格,其他单元格是纯文本单元格。我想到的解决方法是进入所有单元格,只需将值设置为空字符串(即使是稍后我将在代码中更改的值,也可以将其设置为块单元格)。找到这个问题花了一段时间(可能是因为这是我一段时间以来做的第一个dotNet程序)
只是想在这里分享一下,以防有人遇到同样的问题。也许他们不用花这么长时间就能看到解决方案。
**** Hidden Message *****

T.Willey 发表于 2021-5-28 19:50:09

您可能只需要迭代单元格并删除内容数组,在ARX中使用deleteContent(int-nRow,int-nCol)
表编辑通常会创建内容数组。如果有人想向单元格添加块,设置为空字符串可能会导致问题。

T.Willey 发表于 2021-5-29 00:57:38

谢谢,丹尼尔。我会在周一调查,然后测试。

T.Willey 发表于 2021-6-2 15:50:07

删除内容不起作用(如下面的代码所示)。我必须填写一些信息,所以我需要设置单元格的某些属性
// set defaults for each cell
Cell c;
for (int i = 0; i < tbl.Rows.Count; i++) {
        for (int j = 0; j < tbl.Columns.Count; j++) {
                c = tbl.Cells;
                c.DeleteContent();
                c.TextStyleId = styid;
                c.TextHeight = _txht;
                c.Alignment = CellAlignment.MiddleCenter;
                c.Borders.Horizontal.Margin = 0.03;
                // c.Value = "";
        }
}

我测试了使用原始代码向表中添加一个块,没有出现任何问题。谢谢你的主意,丹尼尔。

T.Willey 发表于 2021-6-2 18:44:08

啊,是的,桌子可能很挑剔。我只记得做过一次同样的事情,但我通过玩手机内容解决了它。
页: [1]
查看完整版本: 创建表的程序在以后读取时会在AutoCAD中崩溃(解决方案,仅供参考)