次の方法で共有


LoadingEventArgs.InputParameters プロパティ

/InputParameters コマンド ライン オプション、URL のクエリ パラメーター、または NewFromFormTemplateWithInputParameters メソッドの 1 つを使用して指定された入力パラメーターを含む IDictionary を取得します。

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

構文

'宣言
Public MustOverride ReadOnly Property InputParameters As IDictionary(Of String, String)
    Get
'使用
Dim instance As LoadingEventArgs
Dim value As IDictionary(Of String, String)

value = instance.InputParameters
public abstract IDictionary<string, string> InputParameters { get; }

プロパティ値

型: System.Collections.Generic.IDictionary<String, String>
入力パラメーターを含む IDictionary

例外

例外 条件
InvalidOperationException

呼び出されたメソッドが、入力パラメーターを含む IDictionary への書き込みを試みました。

解説

入力パラメーターは、アンパサンド (&) 文字で区切られた 1 つ以上の名前/値ペアで構成され、/InputParameters コマンドライン オプションを使用してコマンド ラインまたはバッチ ファイルからフォーム テンプレートが開かれるときに指定されます。入力パラメーターは、フォーム テンプレートが URL から開かれるときにクエリ パラメーターを使用して指定される場合もあります。

注意

IDictionary は、通常、読み取り/書き込みを許可しますが、InfoPath は、IDictionary に書き込むメソッド (Add メソッドや Clear メソッドなど) の呼び出しを許可しません。InputParameters プロパティによって返される IDictionary への書き込みを行う呼び出しを実行しようとすると、InvalidOperationException がスローされます。

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

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

次のコードの例では、次の構文を使用して、コマンド ラインまたは URL から、Loading イベント ハンドラー コードを含む InfoPath フォーム テンプレートを開いています。

コマンド ラインの場合:

infopath.exe "C:\User Forms\DeptReport.xsn" /InputParameters "Dept=Accounting&Acct=Contoso"

URL の場合:

https://server/sites/team/forms/DeptReport.xsn?Dept=Accounting&Acct=Contoso

XmlFormCollection クラスの NewFromFormTemplateWithInputParameters(String, String) メソッド、ExternalApplication インターフェイスの NewFromSolutionWithInputParameters(String, String) メソッド、または XDocumentsCollectionNewFromSolutionWithInputParameters(Object, Object) メソッドを使用して、コードから新しいフォームを開いて入力パラメーターで渡すこともできます。

注意

最後とその前のメソッドは、外部自動化コードから使用するためのもので、フォーム コードからの呼び出しはできません。

Loading イベント ハンドラーは、InputParameters プロパティを使用して、フォームが開かれたときに、Department フィールドの値に "Accounting" を設定し、Account フィールドの値に "Contoso" を設定します。値を指定する名前/値ペアは、/InputParameters コマンドライン オプション、URL 入力パラメーター、または NewFromFormTemplateWithInputParameters(String, String) メソッドを使用して、入力パラメーターとして渡すことができます。

public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
   // Be sure that the InputParameter dictionary contains
   // values before proceeding.
   if (e.InputParameters.Count != 0)
   {
      string vDept = e.InputParameters["Dept"];
      string vAcct = e.InputParameters["Acct"];

      XPathNavigator myNav = CreateNavigator();
      myNav.SelectSingleNode("/my:myFields/my:Department",
         NamespaceManager).SetValue(vDept);
      myNav.SelectSingleNode("/my:myFields/my:Account",
         NamespaceManager).SetValue(vAcct);
   }
}
Public Sub FormEvents_Loading(ByVal sender As Object, _
   ByVal e As LoadingEventArgs)
   ' Be sure that the InputParameter dictionary contains
   ' values before proceeding.
   If e.InputParameters.Count <> 0 Then
      Dim vDept As String = e.InputParameters("Dept")
      Dim vAcct As String = e.InputParameters("Acct")

      Dim myNav As XPathNavigator  = CreateNavigator()
      myNav.SelectSingleNode("/my:myFields/my:Department", _
         NamespaceManager).SetValue(vDept)
      myNav.SelectSingleNode("/my:myFields/my:Account", _
         NamespaceManager).SetValue(vAcct)
   End If
End Sub

関連項目

参照

LoadingEventArgs クラス

LoadingEventArgs メンバー

Microsoft.Office.InfoPath 名前空間