Evento FormEvents.Save

Se produce cuando se usan los comandos Guardar o Guardar como desde la interfaz de usuario, o cuando se usan los métodos Save y SaveAs.

Espacio de nombres:  Microsoft.Office.InfoPath
Ensamblado:  Microsoft.Office.InfoPath (en Microsoft.Office.InfoPath.dll)

Sintaxis

'Declaración
Public MustOverride Event Save As SaveEventHandler
'Uso
Dim instance As FormEvents
Dim handler As SaveEventHandler

AddHandler instance.Save, handler
public abstract event SaveEventHandler Save

Excepciones

Excepción Condición
InvalidOperationException

El programador intentó enlazar el evento en una ubicación que no es el método InternalStartup.

Comentarios

Importante

El programador no debe crear instancias del evento Save en el código de formulario. Sólo debe agregar controladores de eventos para eventos del documento desde la interfaz de usuario del modo de diseño de Microsoft InfoPath. Al agregar un controlador de eventos a la plantilla de formulario desde la interfaz de usuario de modo de diseño, InfoPath genera código en el método InternalStartup del archivo de código de formulario mediante la clase EventManager y el miembro de la clase FormEvents para enlazar el evento a su controlador de eventos. Para obtener información sobre cómo agregar controladores de eventos en el modo de diseño de InfoPath, vea Cómo agregar un controlador de eventos.

El evento Save se desencadena sólo si la plantilla de formulario tiene establecida la opción Guardar usando código personalizado del cuadro de diálogo Opciones de formulario.

El evento Save se enlaza utilizando el delegado SaveEventHandler.

El evento Save se puede cancelar utilizando la propiedad CancelableArgs de la clase SaveEventArgs para establecer la propiedad Cancel en true.

El objeto SaveEventArgs, que se pasa como parámetro a un controlador de eventos del evento Save, proporciona propiedades y métodos que se pueden usar para obtener el nombre de archivo del formulario, determinar si está guardado o no, y realizar la operación de guardado.

Únicamente se puede acceder a este tipo o miembro desde el código que se ejecuta en los formularios abiertos en Microsoft InfoPath Filler.

Ejemplos

En el siguiente ejemplo, el controlador de eventos del evento Save comprueba si Field2 está vacío y, si no lo está, realiza una operación de guardado. Si está vacío, muestra un mensaje y cancela la operación de guardado.

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

Vea también

Referencia

clase FormEvents

Miembros FormEvents

Espacio de nombres Microsoft.Office.InfoPath