来自:微软
表单中可以承载 ActiveX 控件。这些控件可以是现成的(具有某些约束),也可以针对 InfoPath 专门编写这些控件。

编写 ActiveX 控件

像 InfoPath 中的其他控件一样,ActiveX 控件应该支持现有的组件对象模型 (COM) 接口:

  • IDispatch
  • IPersistPropertyBag
  • IPersistStreamInit
  • IPropertyPage
  • IObjectSafety
  • IPropertyNotifySink
  • IViewObject
  • IOleObject
  • IOleInPlaceObject

为了让 InfoPath 能在文档对象模型 (DOM) 中的属性在控件中发生更改的情况下可以更新这些属性,控件应该实现下列接口:

  • IConnectionPointContainer
  • IEnumConnectionPoints
  • IConnectionPoint
  • IEnumConnections

 

已经添加了下面两个新的 COM 接口以提供更紧密的控件集成:

  • IInfoPathControl
  • IInfoPathControlSite

 

有关这些接口的详细信息,请参阅 InfoPath 对象模型的帮助。

将 ActiveX 控件添加到 InfoPath 设计环境

“控件”任务窗格允许您使用“添加自定义控件向导”来添加自定义控件。通过该向导可以:

  • 选择已经注册的 ActiveX 控件。
  • 指定 CAB 来安装具有表单的 ActiveX 控件。
  • 指定绑定到 XML 的绑定属性。
  • 指定可能会有帮助的启用或禁用属性,例如,当 XML 不存在或者当使用了条件格式时。
  • 指定数据类型绑定。
  注释
如果开发 ActiveX 控件,并已将其添加到 InfoPath 中的“控件”任务窗格中,则在关闭 InfoPath 之前,将无法重建 ActiveX 控件。

部署 ActiveX 控件

若要分发 ActiveX 控件,可以编写一个安装程序,用来在目标计算机上安装该控件,并将 InfoPath 控件模板 (ICT) 文件和 CAB 文件复制到用户的文件夹 Local Settings\Application Data\Microsoft\InfoPath\Controls 中。请注意,如果两个或多个开发人员正在协作开发使用 ActiveX 控件的表单,则每个开发人员都应该具有已添加到 InfoPath 设计环境的控件,否则他们无法从 InfoPath 内部修改控件的属性。

posted on 2007-11-01 15:11  Dragon-China  阅读(1024)  评论(0编辑  收藏  举报