2

希望那里的人可能遇到与此相同的问题并找到解决方案。

我正在尝试将表中的某些行设置为分组,以便如果一行落入下一页,其他行也将进入下一页。

我正在使用 PdfSharp 和 Migradoc 将行 KeepWith 属性设置为我想要保持连接的行的索引。

IE:

var row = myTable.AddRow();
var rowIndex = row.Index;

foreach (var term in terms)
{
  row = myTable.AddRow();

  if (term.name == "group")
  {
    row.KeepWith = rowIndex;
  }
}

当我尝试加载 pdf 时,我得到一个“对象引用未设置为对象的实例”错误,并且无法弄清楚原因。任何帮助都会很棒。

4

2 回答 2

11

将 KeepWith 设置为要与当前行一起保留的后续行数。要将三行保持在一起,正确的值是 2(设置在组的第一行)。

于 2011-07-26T13:51:01.517 回答
1

我犯了将 KeepWith 放在行尾以保持在一起的错误。正如 Vive la déraison 所说,将 KeepWith 放在行的第一行以保持在一起。

此外,为 KeepWith 值提供的 int 不包括设置它的行。因此,要将行 rowA、rowB 和 rowC 保持在一起,您可以设置:

rowA.KeepWith = 2;

如果您为表的最后一行设置了 KeepWith,并且意外设置了值 +1(包括您设置它的行),您将收到与您相同的“对象未设置...”错误将 KeepWith 扩展得比表格行长。

一定要喜欢那些 Off-By-One 错误。

于 2019-01-14T17:21:03.580 回答