了解 ListObject 列和行顺序持久性

更新:2007 年 11 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

Microsoft Office 版本

  • Excel 2003

  • Excel 2007

有关更多信息,请参见按应用程序和项目类型提供的功能

在将数据绑定到在设计时添加到文档中的 ListObject 控件时,Visual Studio Tools for Office 会在每次保存工作簿时跟踪列和行的顺序。如果用户在运行期间移动 ListObject 列或行,新顺序便会保持下来,下次打开工作簿时,ListObject 控件会再次绑定到相应的数据源。

如何保持列和行顺序

保存包含绑定到数据的 ListObject 的工作簿时,列和行顺序会被保存在工作簿的自定义文档属性中。

该属性的名称由工作表和列表对象的组合名称的哈希代码来确定。例如,Sheet1 上名为 List1 的 ListObject 控件的自定义文档属性名称为 ___2387CEF09___0。如果此属性值的长度超过 255 个字符,便会创建另一个自定义文档属性,并在其后追加下一个连续的编号;例如,___2387CEF09___1、___2387CEF09___2 等等。

自定义文档属性的值包含列名称和行号。例如,如果 ListObject 由四行两列组成,两列分别名为“LastName”和“FirstName”,则相应的属性值为 FirstName*LastName%1*2*3*4。如果用户将第三行移至第二行,在保存工作簿时,此值便会更改为 FirstName*LastName%1*3*2*4。

下次打开工作簿时,ListObject 便会读取自定义文档属性中的信息,并在加载数据时维护行和列的顺序。

如何还原列和行顺序

如果要将 ListObject 还原为其原始的列和行顺序,可以调用 ResetPersistedBindingInformation 方法。此方法会移除与指定 ListObject 的列和行顺序相关的自定义文档属性。如果不想保持 ListObject 的列和行顺序,则可从工作簿的 Shutdown 事件中调用此方法。

请参见

任务

如何:将 ListObject 列映射到数据

概念

ListObject 控件

其他资源

Excel 宿主控件