View.GetSelectedNodes メソッド
ビューで現在選択されている項目内のすべての XML ノードに対して反復処理を行うための XPathNodeIterator オブジェクトへの参照を取得します。
名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)
構文
'宣言
Public MustOverride Function GetSelectedNodes As XPathNodeIterator
'使用
Dim instance As View
Dim returnValue As XPathNodeIterator
returnValue = instance.GetSelectedNodes()
public abstract XPathNodeIterator GetSelectedNodes()
戻り値
型: System.Xml.XPath.XPathNodeIterator
現在の選択範囲内にあるすべてのノードに対して反復処理を行うための XPathNodeIterator。
例外
例外 | 条件 |
---|---|
InvalidOperationException | GetSelectedNodes メソッドが、Loading イベントのイベント ハンドラーから呼び出されました。 |
解説
ビュー内で項目が 1 つも選択されていない場合、およびテキストしか選択されていない場合は、 GetSelectedNodes メソッドから返された XPathNodeIterator オブジェクトには、反復処理の対象として何も格納されていません。
注意
GetSelectedNodes メソッドを、ビュー内のボタンの Clicked イベントのイベント ハンドラー内で使用すると、現在の選択範囲に基づくノードは返されません。これは、本来はコンテキスト内にあるコントロールからフォーカスが失われるためです。このような動作を回避するには、カスタム作業ウィンドウ、メニュー、またはツール バーの GetSelectedNodes メソッドを使用します。
このメンバーには、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームのみがアクセスできます。
この型またはメンバーには、Microsoft InfoPath Filler で開かれたフォームを実行中のコードからのみアクセスできます。
例
次の例は、SelectNodes メソッドを使用して、group2 にバインドされている [繰り返しテーブル] コントロールの最初の行内のノードを選択します。次に、GetSelectedNodes メソッドを使用して、現在の選択範囲に基づいたノードのコレクションを返します。そして最後に、ノードのコレクションにループ処理を実行して、各ノードの名前、内部 XML、および値を表示します。
// Create XPathNavigator and specify XPath for nodes.
XPathNavigator repeatingTableRow1 =
MainDataSource.CreateNavigator().SelectSingleNode(
"/my:myFields/my:group1/my:group2[1]", NamespaceManager);
// Select nodes in specified XPathNavigator.
CurrentView.SelectNodes(repeatingTableRow1);
// Get selected nodes.
XPathNodeIterator selectedNodes =
CurrentView.GetSelectedNodes();
// Display the count of selected nodes.
MessageBox.Show(selectedNodes.Count.ToString());
// Loop through collection and display information.
foreach (XPathNavigator selectedNode in selectedNodes)
{
MessageBox.Show(selectedNode.Name);
MessageBox.Show(selectedNode.InnerXml);
MessageBox.Show(selectedNode.Value);
}
' Create XPathNavigator and specify XPath for nodes.
Dim repeatingTableRow1 As XPathNavigator = _
CreateNavigator().SelectSingleNode( _
"/my:myFields/my:group1/my:group2[1]", NamespaceManager)
' Select nodes in specified XPathNavigator.
CurrentView.SelectNodes(repeatingTableRow1)
' Get selected nodes.
Dim selectedNodes As XPathNodeIterator = _
CurrentView.GetSelectedNodes()
' Display the count of selected nodes.
MessageBox.Show(selectedNodes.Count.ToString())
' Loop through collection and display information.
Dim selectedNode As XPathNavigator
For Each selectedNode In selectedNodes
MessageBox.Show(selectedNode.Name)
MessageBox.Show(selectedNode.InnerXml)
MessageBox.Show(selectedNode.Value)
Next