Evento FormEvents.Submit

Ocurre cuando se usa el comando Enviar de la interfaz de usuario o se usa el método Submit.

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

Sintaxis

'Declaración
Public MustOverride Event Submit As SubmitEventHandler
'Uso
Dim instance As FormEvents
Dim handler As SubmitEventHandler

AddHandler instance.Submit, handler
public abstract event SubmitEventHandler Submit

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 evento Submit no está pensado para ser iniciado por el programador en código de formulario. Solo se deben agregar controladores de eventos para eventos de nivel de formulario desde la interfaz de usuario del modo diseño de Microsoft InfoPath. Al agregar un controlador de eventos a la plantilla de formulario desde la interfaz de usuario del modo de diseño, InfoPath genera códigos en el método InternalStartup 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 Submit sólo se desencadena si la plantilla de formulario tiene establecida la opción Realizar acción personalizada utilizando código en el cuadro de diálogo Opciones de envío.

El evento Submit se enlaza usando el delegado SubmitEventHandler.

El evento Submit se puede cancelar usando la propiedad CancelableArgs de la clase MergeEventArgs para establecer la propiedad Cancel como true.

Si el código del controlador de eventos usa la propiedad CancelableArgs para establecer las cadenas de las propiedades Message o MessageDetails, pero la propiedad CancelableArgs.Cancel se deja con su valor predeterminado de false, se mostrará un mensaje de operación correcta con el texto de las propiedades Message y MessageDetails. Este mensaje anulará los valores de los mensajes personalizados de Mostrar un mensaje de confirmación o de error y En caso de éxito en el cuadro de diálogo Opciones de envío de formularios.

De la misma forma, si el código del controlador de eventos establece las cadenas Message o MessageDetails, y establece CancelableArgs.Cancel en true, se mostrará un mensaje de error; el mensaje se mostrará con el texto de las propiedades Message y MessageDetails y anulará los valores introducidos en el cuadro de diálogo Opciones de envío de formularios.

Si el código del controlador de eventos deja las propiedades Message y MessageDetails con el valor predeterminado de una referencia null (Nothing en Visual Basic), pero establece CancelableArgs.Cancel en true, se considera que se ha producido un error en la operación de envío. Los valores introducidos en el cuadro de diálogo Opciones de envío determinarán si se muestra un mensaje de error y cuál será dicho mensaje.

No se pueden hacer llamadas al método Quit de la clase Application en el controlador de eventos Submit.

Se puede acceder a este tipo o miembro desde el código que se ejecuta en los formularios abiertos en Microsoft InfoPath Filler o en un explorador web.

Ejemplos

En el siguiente ejemplo, el controlador de eventos del evento Submit se usa para impedir el envío del formulario si éste no se ha guardado.

public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
   if(this.Dirty || this.New)
      MessageBox.Show("Please save this form before submitting it.");
      e.CancelableArgs.Cancel = true;
   else
      e.CancelableArgs.Message = "Submit succeeded.";
}
Public Sub FormEvents_Submit(ByVal sender As Object, _
   ByVal e As SubmitEventArgs)
   If(Me.Dirty Or Me.New) Then
      MessageBox.Show("Please save this form before submitting it.")
      e.CancelableArgs.Cancel = True
   Else
      e.CancelableArgs.Message = "Submit succeeded."
   End If
End Sub

Vea también

Referencia

clase FormEvents

Miembros FormEvents

Espacio de nombres Microsoft.Office.InfoPath