FormEvents.Save イベント
ユーザー インターフェイスから [保存] コマンドまたは [名前を付けて保存] コマンドが使用されると、または Save メソッドおよび SaveAs メソッドが使用されると発生します。
名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (microsoft.office.infopath.dll 内)
構文
'宣言
Public Event Save As SaveEventHandler
'使用
Dim instance As FormEvents
Dim handler As SaveEventHandler
AddHandler instance.Save, handler
public abstract event SaveEventHandler Save
例外処理
例外の種類 | 条件 |
---|---|
開発者は、InternalStartup メソッドとは異なる場所でイベントをバインドしようとしました。 |
コメント
重要 : |
---|
Save イベントは、フォーム コードで開発者がインスタンス化するためのものではありません。開発者は、Microsoft Office InfoPath 2007 デザイン モード ユーザー インターフェイスからフォーム レベル イベントに対するイベント ハンドラの追加だけを行います。デザイン モード ユーザー インターフェイスからフォーム テンプレートにイベント ハンドラを追加すると、InfoPath は、EventManager クラスおよび FormEvents クラスのメンバを使用してフォーム コード ファイルの InternalStartup メソッドにコードを生成し、イベントをイベント ハンドラにバインドします。InfoPath のデザイン モードでイベント ハンドラを追加する方法の詳細については、「[方法] イベント ハンドラを追加する方法」を参照してください。 |
Save イベントは、フォーム テンプレートの [フォームのオプション] ダイアログ ボックスで [ユーザー設定コードを使って保存] オプションが設定されている場合にのみ発生します。
Save イベントは、SaveEventHandler 代理を使用してバインドされます。
SaveEventArgs クラスの CancelableArgs プロパティを使用して Cancel プロパティを true に設定することで、Save イベントをキャンセルできます。
Save イベントのイベント ハンドラに対するパラメータとして渡される SaveEventArgs オブジェクトが提供するプロパティとメソッドを使用すると、フォームのファイル名を取得し、保存状態を判別し、保存操作を実行することができます。
この型またはメンバは、Microsoft Office InfoPath 2007 で開いているフォームで実行されているコードからのみアクセスできます。
例
次の例では、Save イベントのイベント ハンドラは、Field2 が空かどうかを判別し、空でない場合は保存操作を実行します。空の場合は、メッセージを表示して保存操作をキャンセルします。
public void FormEvents_Save(object sender, SaveEventArgs e)
{
// Check to see if Field2 is empty.
XPathNavigator reqField =
CreateNavigator().SelectSingleNode("/my:myFields/my:field2",
NamespaceManager);
if(reqField.ToString() == "")
{
MessageBox.Show("Field2 is empty.\nYou cannot save the form.");
e.CancelableArg.Cancel = true;
}
else
{
// The Dirty property will be set to false if save is successful.
e.PerformSaveOperation();
e.CancelableArgs.Cancel = false;
}
}
Public Sub FormEvents_Save(ByVal sender As Object, _
ByVal e As SaveEventArgs)
' Check to see if Field2 is empty.
Dim reqField as XPathNavigator =
CreateNavigator().SelectSingleNode("/my:myFields/my:field2", _
NamespaceManager)
If(reqField.ToString() = "") Then
MessageBox.Show("Field2 is empty" & vbNewLine & _
"You cannot save the form.")
e.CancelableArgs.Cancel = True
Else
' The Dirty property will be set to false if save is successful.
e.PerformSaveOperation()
e.CancelableArgs.Cancel = False
End If
End Sub
関連項目
参照
FormEvents クラス
FormEvents のメンバ
Microsoft.Office.InfoPath 名前空間