次の方法で共有


FormEvents.Save イベント

定義

ユーザー インターフェイスから [名前を付けて保存] コマンドまたは [名前を付けて保存] コマンドを使用する場合、または メソッドと SaveAs(String) メソッドが使用されている場合にSave()発生します。

public:
 abstract event Microsoft::Office::InfoPath::SaveEventHandler ^ Save;
public abstract event Microsoft.Office.InfoPath.SaveEventHandler Save;
member this.Save : Microsoft.Office.InfoPath.SaveEventHandler 
Public MustOverride Custom Event Save As SaveEventHandler 

イベントの種類

例外

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

次の例では、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

注釈

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

Save イベントは、フォーム テンプレートの [フォーム オプション] ダイアログ ボックスで [カスタム コードを使用して保存] オプションが設定されている場合にのみ発生します。

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

クラスの プロパティを使用して Cancel プロパティSaveEventArgsCancelableArgstrue に設定することで、Save イベントを取り消すことができます。

Save イベントのイベント ハンドラーにパラメーターとして渡される オブジェクトはSaveEventArgs、フォームのファイル名の取得、保存状態の決定、保存操作の実行に使用できるプロパティとメソッドを提供します。

この型またはメンバーには、Microsoft InfoPath Filler で開いたフォームで実行されるコードからのみアクセスできます。

適用対象