次の方法で共有


View.GetContextNodes メソッド

現在の選択範囲内にある返された XML ノードに対して反復処理を行うための、XPathNodeIterator への参照を取得します。

名前空間:  Microsoft.Office.InfoPath
アセンブリ:  Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)

構文

'宣言
Public MustOverride Function GetContextNodes As XPathNodeIterator
'使用
Dim instance As View
Dim returnValue As XPathNodeIterator

returnValue = instance.GetContextNodes()
public abstract XPathNodeIterator GetContextNodes()

戻り値

型: System.Xml.XPath.XPathNodeIterator
現在の選択範囲内にあるノードが格納されている XPathNodeIterator

例外

例外 条件
InvalidOperationException

GetContextNodes メソッドが Loading イベントのイベント ハンドラーから呼び出されました。

解説

GetContextNodes メソッドによって返される XML ノードは、ビューからマップされた一連のノードで構成され、選択された XSL 変換 (XSLT) ノードに対応しています。

選択したノードがビュー内の複数のコントロールにバインドされている場合は、このメソッドではなく、反復処理の対象とするノードにバインドされているコントロールの ViewContext 識別子を指定できる GetContextNodes メソッドを使用する必要があります。

注意

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

このメンバーには、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームのみがアクセスできます。

この型またはメンバーには、Microsoft InfoPath Filler で開かれたフォームを実行中のコードからのみアクセスできます。

次の例では、GetContextNodes メソッドを使用して、現在の選択内容に基づいてコンテキスト ノードのコレクションを返して XPathNodeIterator オブジェクト変数に保存します。次に、コンテキスト ノードのコレクションにループ処理を実行して、各ノードの名前、内部 XML、および値を表示します。

// Get context nodes in current selection.
XPathNodeIterator contextNodes = 
   CurrentView.GetContextNodes();

// Loop through collection and display information.
foreach (XPathNavigator contextNode in contextNodes)
{
   MessageBox.Show(contextNode.Name);
   MessageBox.Show(contextNode.InnerXml);
   MessageBox.Show(contextNode.Value);
}
' Get context nodes in current selection.
Dim contextNodes As XPathNodeIterator = _
   CurrentView.GetContextNodes(repeatingTableRow1)

' Loop through collection and display information.
Dim contextNode As XPathNavigator
For Each contextNode In contextNodes
   MessageBox.Show(contextNode.Name)
   MessageBox.Show(contextNode.InnerXml)
   MessageBox.Show(contextNode.Value)
Next

関連項目

参照

View クラス

View メンバー

GetContextNodes オーバーロード

Microsoft.Office.InfoPath 名前空間