InfoPath 2003 オブジェクト モデルを使用して警告とダイアログ ボックスを表示する

InfoPath 2003 オブジェクト モデルを使用するフォーム テンプレートの機能を拡張するためのコードを書く際、ユーザーにダイアログ ボックス形式で情報を表示すると便利な場合があります。 ダイアログ ボックスと関連するユーザー インターフェイス要素をプログラムで表示するには、 UIObject インターフェイスのメソッドを使用して InfoPath を使用します。

UIObject インターフェイスの概要

UIObject インターフェイスには次のメソッドが用意されています。フォーム開発者は、フォームに入力する際にさまざまな種類のダイアログ ボックスを InfoPath ユーザーに表示するために使用できます。

名前 説明
アラート
指定したメッセージ文字列を含む単純なメッセージ ボックスを表示します。 このメソッドは、ユーザーからの入力が必要なく、メッセージを表示する必要がある場合にのみ使用します。 表示されるダイアログ ボックスは、[OK] ボタンをクリックして閉じることができます。
確認
ユーザーが入力可能なメッセージ ボックスをいくつかのボタンと共に表示します。 返される値は、 XdConfirmChoice 列挙定数のいずれかです。
SetSaveAsDialogFileName
[名前を付けて保存] ダイアログ ボックスにフォームの既定のファイル名を設定します。
SetSaveAsDialogLocation
[名前を付けて保存] ダイアログ ボックスが開いたときに参照を開始する場所を設定します。
ShowMailItem
既定の電子メール アプリケーションに新しい電子メール メッセージを作成し、現在開いているフォームをメッセージに添付します。
ShowModalDialog
指定した .html ファイルと場所引数に基づいてモーダル ダイアログ ボックスを表示します。 このメソッドは、ユーザーに単純なメッセージ以上のメッセージを表示する必要があり、ユーザーからデータを取得する必要がある場合に使用する必要があります (Confirm メソッドによって表示される [はい | いいえ | キャンセル] ボタンによって提供される単純な確認以外)。
ShowSignatureDialog
組み込みの [デジタル署名] ダイアログ ボックスを表示します。

UIObject インターフェイスの使用

UIObject インターフェイスは、XDocument インターフェイスの UI プロパティを介してアクセスされます。このインターフェイス自体は、フォーム コード クラスのメソッドで_Startup初期化された変数を介してthisXDocumentアクセスされます。 次の例では、UIObject インターフェイスの ShowMailItem メソッドと Alert メソッドの使用を示します。

thisXDocument.UI.ShowMailItem("someone@example.com","", "", 
   "Updated Form", "Here is the updated form that you requested.");
thisXDocument.UI.Alert("The email message has been created.");
thisXDocument.UI.ShowMailItem("someone@example.com", "", "", _
   "Updated Form", "Here is the updated form that you requested.")
thisXDocument.UI.Alert("The email message has been created.")

ShowModalDialog メソッドの使用

この例では、UIObject インターフェイスの ShowModalDialog メソッドを使用して、HTML ファイル show.html で定義されているカスタム ダイアログ ボックスを表示する方法を示します。

public void CTRL1_5_OnClick(DocActionEvent e)
{
   // Write your code here.
   thisXDocument.UI.ShowModalDialog(
      "show.html",(object)thisXDocument,200,450,50,50);
}
Public Sub CTRL1_5_OnClick(ByVal e As DocActionEvent)
   ' Write your code here.
   thisXDocument.UI.ShowModalDialog( _
      "show.html", _
      DirectCast(thisXDocument, Object), 200, 450, 50, 50)
End Sub

Visual C# と Visual Basic の両方のサンプルは、 ShowModalDialog メソッドによって呼び出されるダイアログ ボックスを定義する "show.html" という名前の HTML ファイルに依存します。 この HTML ファイルは、フォームからのデータを表示し、ユーザーが値を入力するためのテキスト ボックスを表示します。 テキスト ボックス内の値は、ダイアログ ボックスが閉じたときにフォームに返されます。

<HTML>
   <HEAD>
      <script language="JScript">
function BtnClick()
{
   xdocument = window.dialogArguments;
   myXml = xdocument.DOM.xml
   aForm = oForm.elements;
   aForm.textBox.value = myXml;
}
      </script>
   </HEAD>
   <BODY>
      <H1><FONT face="Arial">This is a modal dialog box</FONT> &nbsp;
      </H1>
      <BUTTON onclick="BtnClick()" id="BUTTON1" type="button">
         Get XML DOM
      </BUTTON>
      <FORM ID="oForm">
         <INPUT Type="text" name="textBox">
      </FORM>
   </BODY>
</HTML>

重要

ShowModalDialog メソッドを実行またはプレビューするには、完全信頼が必要です。 詳細については、「 完全信頼が必要なフォーム テンプレートのプレビューとデバッグ」を参照してください。