次の方法で共有


View.GetContextNodes メソッド

現在のコンテキストに基づく XML Document Object Model (DOM) ノードを含む XMLNodesCollection コレクションへの参照を返します。

このメソッドは、CLS に準拠していません。  

名前空間: Microsoft.Office.Interop.InfoPath.SemiTrust
アセンブリ: Microsoft.Office.Interop.InfoPath.SemiTrust (microsoft.office.interop.infopath.semitrust.dll 内)

構文

'宣言
<DispIdAttribute(11)> _
Function GetContextNodes ( _
    varNode As Object, _
    varViewContext As Object _
) As XMLNodesCollection
'使用
Dim instance As View
Dim varNode As Object
Dim varViewContext As Object
Dim returnValue As XMLNodesCollection

returnValue = instance.GetContextNodes(varNode, varViewContext)
[DispIdAttribute(11)] 
XMLNodesCollection GetContextNodes (
    Object varNode,
    Object varViewContext
)

パラメータ

  • varNode
    XML DOM ノード。
  • varViewContext
    コンテキストに使用されるコントロールの ID。

戻り値

XMLNodesCollection コレクションへの参照。

コメント

GetContextNodes メソッドによって返されるコレクションは、ビューからマップされた一連の XML DOM ノードから構成され、現在の XSL 変換 (XSLT) ノードに対応します。各ノードは、現在の選択範囲からビューの上位に向かって BODY タグに至る順序で配置されています。

パラメータを使用しない場合は、現在の選択範囲に基づくコンテキスト ノードが返されます。パラメータを指定すると、SelectNodes メソッドで取得する選択範囲に基づくコンテキスト ノードが返されます。

メモメモ :

GetContextNodes メソッドを、ビュー内のボタンの OnClick イベントで使用すると、現在の選択範囲に基づくノードは返されません。これは、本来はコンテキスト内にあるコントロールからフォーカスが失われるためです。このような動作を回避するには、カスタム作業ウィンドウ、メニュー、またはツール バーの GetContextNodes メソッドを使用します。

メモ重要 :

このメンバは、現在開いているフォームと同じドメイン内で実行されているフォーム、またはドメインを越えたアクセス許可を付与されているフォームだけがアクセスできます。

次の例では、ViewObject オブジェクトの GetContextNodes メソッドを使用して、現在のコンテキストに基づく XML DOM ノードのコレクションを取得します。次に、XML DOM ノードのコレクションをループして、特定のノードを検索します。ノードが見つかると、field1 のテキストが更新されます。この例では、field1 という名前のフィールドを含む group1 という名前の繰り返しセクションの構造が必要です。

XMLNodesCollection contextNodes = thisXDocument.View.GetContextNodes(Type.Missing, Type.Missing);
// Scan the list of context nodes for an field1 node and if one is found
// update its text.
 foreach (IXMLDOMNode contextNode in contextNodes)
 {
  if (contextNode.nodeName == "my:group1")
  {
   contextNode.selectSingleNode("my:field1").text = "found node";
   break;
  }
 }

関連項目

参照

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