次の方法で共有


_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 ノードのことです。たとえば、ビューで現在テキスト ボックスが選択されている場合は、そのテキスト ボックスがバインドされているノードになります。繰り返しセクションが現在選択されている場合は、コンテキスト ノードはそのアイテムに対するノードです。繰り返しセクションが 2 つ選択されている場合は、ビューにマップされている両アイテムの祖先に当たる XML DOM ノードになります。

OnContextChange イベントは非同期です。コンテキスト ノードが変化するたびに発生するのではなく、アプリケーションが他のイベントの処理を終了した後で発生します。

ドキュメントが読み込まれたときや、ビューが変更されたときは、OnLoad イベントおよび OnSwitchView イベントに続いて、OnContextChange イベントが発生します。

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;
}
}

関連項目

参照

_XDocumentEventSink2_Event インターフェイス
_XDocumentEventSink2_Event のメンバ
Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間