Share via


DocContextChangeEventObject 接口

在 Microsoft InfoPath 上下文更改事件期间使用的一个事件对象。

命名空间:  Microsoft.Office.Interop.InfoPath.SemiTrust
程序集:  Microsoft.Office.Interop.InfoPath.SemiTrust(位于 Microsoft.Office.Interop.InfoPath.SemiTrust.dll 中)

语法

声明
<GuidAttribute("096cd6d2-0786-11d1-95fa-0080c78ee3bb")> _
Public Interface DocContextChangeEventObject _
    Inherits DocContextChangeEvent, DocEvent
用法
Dim instance As DocContextChangeEventObject
[GuidAttribute("096cd6d2-0786-11d1-95fa-0080c78ee3bb")]
public interface DocContextChangeEventObject : DocContextChangeEvent, 
    DocEvent

备注

此类型是用于 Coclass(托管代码需要此 Coclass 来实现 COM 互操作性)的包装。使用此类型来访问由此 Coclass 实现的 COM 接口。有关 COM 接口的信息(包括指向其成员说明的链接),请参阅DocContextChangeEvent.

DocContextChangeEvent 对象提供了许多属性,使用这些属性,可以在上下文更改中以编程方式与表单的基础 XML 文档中数据进行交互、向用户提供上下文反馈或者执行用户的操作。

DocContextChangeEvent 对象作为参数传递给 OnContextChange 事件。

DocContextChangeEvent 对象可以用来获取有关 XML 文档对象模型 (DOM) 节点(即表单的基础 XML 文档当前的上下文)的信息。此外,它还提供关于上下文更改类型以及更改是否因为响应用户执行的撤消或恢复操作而发生的信息。

Type 属性只返回 Microsoft InfoPath 中上下文更改的"ContextNode"值。但是,如果事件处理程序中的代码执行的操作依赖于当前功能,那么,仍应当将该代码设计为检查 Type 属性的值,因为 InfoPath 后续版本可能对不同的上下文更改使用不同的值。

IsUndoRedo 属性为 true 时,上下文更改由撤消或恢复操作引起,而非显式用户上下文更改所导致。作为对撤消或恢复操作的响应,应该避免在 OnContextChange 事件中修改 XML DOM,因为执行这些操作可能会影响用户将数据恢复到以前的状态。

示例

在以下示例中,为了响应上下文更改,将更新名为 lastChanged 的节点:

[InfoPathEventHandler(EventType=InfoPathEventType.OnContextChange)]
public void OnContextChange(DocContextChangeEvent e)
{
 if ( e.Type == "ContextNode" && !e.IsUndoRedo )
 {
  IXMLDOMNode contextNode = e.Context;
  IXMLDOMNode lastChangedNode = thisXDocument.DOM.selectSingleNode("/my:myRoot/my:lastChanged");
  lastChangedNode.text = contextNode.nodeName;
 }
}

另请参阅

引用

DocContextChangeEventObject 成员

Microsoft.Office.Interop.InfoPath.SemiTrust 命名空间