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