_XDocumentEventSink2_Event.OnContextChange 事件
在上下文节点更改之后发生。
命名空间: Microsoft.Office.Interop.InfoPath.SemiTrust
程序集: Microsoft.Office.Interop.InfoPath.SemiTrust(位于 Microsoft.Office.Interop.InfoPath.SemiTrust.dll 中)
语法
声明
Event OnContextChange As _XDocumentEventSink2_OnContextChangeEventHandler
用法
Dim instance As _XDocumentEventSink2_Event
Dim handler As _XDocumentEventSink2_OnContextChangeEventHandler
AddHandler instance.OnContextChange, handler
event _XDocumentEventSink2_OnContextChangeEventHandler OnContextChange
备注
上下文节点是映射到与包含当前 XML 选择的容器(或项目)相对应的视图的 XML DOM 节点。例如,如果视图中的当前选择是文本框,则上下文节点是文本框绑定到的节点。如果当前选择为重复节,则上下文节点是该项目的节点。如果选择了两个重复节,则上下文节点是两个映射到此视图的项目的祖先 XML DOM。
OnContextChange 事件是异步的。它不会在每次更改上下文节点时激发,而是在应用程序停止处理其他事件后激发。
在加载文档或更改视图时,OnContextChange 事件将在 OnLoad 和 OnSwitchView 事件之后发生。
当 DocContextChangeEventObject 对象的 IsUndoRedo 属性为 true 时,上下文更改由撤消或恢复操作引起,而非显式用户上下文更改所导致。作为对撤消或恢复操作的响应,应该避免在 OnContextChange 事件处理程序中执行修改 XML DOM 的操作,因为这些操作可能会影响用户将数据恢复到以前的状态。
对于格式文本框控件,不会因 XHTML 内容中的上下文更改(即控件中格式文本的选定内容更改)而引发 OnContextChange 事件。GetContextNodes 方法可用于确定格式文本框控件中的选定内容。
示例
public void OnContextChange(DocContextChangeEvent e)
{
if (e.Type == "ContextNode")
{
IXMLNode expNode=XDocument.DOM.selectSingleNode("//my:field4");
// set field4 with the name of the current context.
expNode.text=e.Context.nodeName;
}
}