次の方法で共有


FormEvents.Submit イベント

ユーザー インターフェイスから [送信] コマンドが使用されると、または Submit メソッドが使用されると発生します。

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

構文

'宣言
Public MustOverride Event Submit As SubmitEventHandler
'使用
Dim instance As FormEvents
Dim handler As SubmitEventHandler

AddHandler instance.Submit, handler
public abstract event SubmitEventHandler Submit

例外

例外 条件
InvalidOperationException

開発者は、InternalStartup メソッドとは異なる場所でイベントをバインドしようとしました。

解説

重要

Submit イベントは、フォーム コードで開発者がインスタンス化するためのものではありません。開発者は、Microsoft InfoPath 2010 デザイン モード ユーザー インターフェイスからフォーム レベル イベントに対するイベント ハンドラーの追加だけを行います。デザイン モード ユーザー インターフェイスからフォーム テンプレートにイベント ハンドラーを追加すると、InfoPath は、EventManager クラスおよび FormEvents クラスのメンバーを使用してフォーム コード ファイルの InternalStartup メソッドにコードを生成し、イベントをイベント ハンドラーにバインドします。InfoPath のデザイン モードでイベント ハンドラーを追加する方法の詳細については、「[方法] イベント ハンドラーを追加する方法」を参照してください。

Submit イベントは、[送信オプション] ダイアログ ボックスでフォーム テンプレートに [コードを使用してユーザー設定操作を実行する] オプションが設定されている場合にのみ発生します。

Submit イベントは、SubmitEventHandler デリゲートを使用してバインドされます。

MergeEventArgs クラスの CancelableArgs プロパティを使用して Cancel プロパティを true に設定することで、Submit イベントを取り消せます。

イベント ハンドラーのコードで CancelableArgs プロパティを使用して Message プロパティまたは MessageDetails プロパティの文字列を設定しても、CancelableArgs.Cancel プロパティを既定の設定である false のままにしておくと、成功メッセージと共に Message プロパティと MessageDetails プロパティのテキストが表示されます。このメッセージは、[フォーム送信オプション] のユーザー指定メッセージの設定 [成功時および失敗時にメッセージを表示する] と [成功時] を無効にします。

同様に、イベント ハンドラーのコードで Message または MessageDetails の文字列を設定し、CancelableArgs.Cancel を true に設定すると、失敗時にメッセージが表示され、メッセージと共に Message プロパティと MessageDetails プロパティのテキストが示されて、[フォーム送信オプション] ダイアログ ボックスの設定が無効になります。

イベント ハンドラーのコードで Message プロパティと MessageDetails プロパティを既定値の null 参照 (Visual Basic ではNothing ) のままにし、一方で CancelableArgs.Cancel を true に設定すると、送信操作は失敗したものと見なされます。失敗メッセージが表示されるかどうか、および表示されるメッセージは、[送信オプション] ダイアログ ボックスの設定によって決まります。

Application クラスの Quit メソッドの呼び出しは、Submit イベント ハンドラー内で行うことはできません。

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

次の例では、Submit イベントのイベント ハンドラーを使用して、フォームが保存されていない場合にはフォームが送信されないようにしています。

public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
   if(this.Dirty || this.New)
      MessageBox.Show("Please save this form before submitting it.");
      e.CancelableArgs.Cancel = true;
   else
      e.CancelableArgs.Message = "Submit succeeded.";
}
Public Sub FormEvents_Submit(ByVal sender As Object, _
   ByVal e As SubmitEventArgs)
   If(Me.Dirty Or Me.New) Then
      MessageBox.Show("Please save this form before submitting it.")
      e.CancelableArgs.Cancel = True
   Else
      e.CancelableArgs.Message = "Submit succeeded."
   End If
End Sub

関連項目

参照

FormEvents クラス

FormEvents メンバー

Microsoft.Office.InfoPath 名前空間