FormEvents.Save-Ereignis
Tritt ein, wenn die Befehle Speichern oder Speichern unter von der Benutzeroberfläche verwendet werden, oder bei Verwendung der Save- und SaveAs-Methoden.
Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)
Syntax
'Declaration
Public MustOverride Event Save As SaveEventHandler
'Usage
Dim instance As FormEvents
Dim handler As SaveEventHandler
AddHandler instance.Save, handler
public abstract event SaveEventHandler Save
Ausnahmen
Ausnahme | Bedingung |
---|---|
InvalidOperationException | Es wurde versucht, das Ereignis an einen anderen Speicherort als die InternalStartup-Methode zu binden. |
Hinweise
Wichtig
Das Save-Ereignis sollte nicht vom Entwickler im Formularcode instanziiert werden. Ereignishandler für Ereignisse auf Formularebene sollten nur über die Microsoft InfoPath-Entwurfsmodus-Benutzeroberfläche hinzugefügt werden. Wenn Sie der Formularvorlage über die Entwurfsmodus-Benutzeroberfläche einen Ereignishandler hinzufügen, wird in InfoPath mithilfe der EventManager-Klasse und des Members der FormEvents-Klasse in der InternalStartup-Methode der Formularcodedatei Code generiert, um das Ereignis an den zugehörigen Ereignishandler zu binden. Weitere Informationen zum Hinzufügen von Ereignishandlern im InfoPath-Entwurfsmodus finden Sie unter Vorgehensweise: Hinzufügen eines Ereignishandlers.
Das Save-Ereignis wird nur ausgelöst, wenn in der Formularvorlage im Dialogfeld Formularoptionen die Option Speichern mittels benutzerdefiniertem Code festgelegt ist.
Die Bindung des Save-Ereignisses erfolgt mithilfe des SaveEventHandler-Delegaten.
Das Save-Ereignis kann mithilfe der CancelableArgs-Eigenschaft der SaveEventArgs-Klasse abgebrochen werden, um die Cancel-Eigenschaft auf true festzulegen.
Das an einen Ereignishandler des Save-Ereignisses als Parameter übergebene SaveEventArgs-Objekt stellt Eigenschaften und Methoden bereit, die zum Abrufen des Formulardateinamens, zum Festlegen des Speicherstatus und zum Ausführen des Speichervorgangs verwendet werden können.
Auf diesen Typ oder dieses Mitglied kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler geöffnet wurden.
Beispiele
Im folgenden Beispiel überprüft der Ereignishandler für das Save-Ereignis, ob "Field2" leer ist. Wenn nicht, wird ein Speichervorgang ausgeführt. Andernfalls wird eine Meldung angezeigt und der Speichervorgang abgebrochen.
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