次の方法で共有


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

例外処理

例外の種類 条件

InvalidOperationException

開発者は、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 名前空間