来自:微软
表单中可以承载 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 内部修改控件的属性。