Compartir a través de


FormEvents.Loading (Evento)

Ocurre después de haber cargado una plantilla de formulario, pero antes de inicializar alguna vista.

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

Sintaxis

'Declaración
Public Event Loading As LoadingEventHandler
'Uso
Dim instance As FormEvents
Dim handler As LoadingEventHandler

AddHandler instance.Loading, handler
public abstract event LoadingEventHandler Loading

Excepciones

Tipo de 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 Loading en 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 Office InfoPath 2007. 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 Loading se enlaza utilizando el delegado LoadingEventHandler.

El evento Loading se produce antes de que se cargue el formulario y se presente la vista.

Si una plantilla de formulario se implementa y se abre en Microsoft Office Forms Server 2007 o en una biblioteca de documentos configurada adecuadamente de Office SharePoint Server 2007 con InfoPath Forms Services, el evento Loading sólo se produce una vez por sesión.

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

Nota

Cuando ocurre el evento Loading, la vista no se inicializa y la transformación XSL (XSLT) utilizada para ella no se carga todavía. El objeto XmlForm no se agrega a la colección XmlFormCollection hasta que haya ocurrido el evento Loading. Sin embargo, el objeto XmlForm estará disponible durante el evento Loading.

En el controlador de eventos Loading no se pueden hacer llamadas a los siguientes métodos y propiedades:

Quit

DisableAutoUpdate

EnableAutoUpdate

ExecuteAction

Export

ForceUpdate

GetContextNodes

GetSelectedNodes

SelectNodes

SelectText

SwitchView

Close

MergeForm

New

Save

SaveAs

Submit

Print

NewFromFormTemplate

Close

TaskPanes

En el controlador de eventos Loading no se pueden hacer llamadas a los miembros de las clases AdoSubmitConnection, EmailSubmitConnection y FileSubmitConnection.

Se puede tener acceso a este tipo o miembro desde un código ejecutado en formularios abiertos en Microsoft Office InfoPath 2007 o en un explorador Web.

Ejemplo

En el siguiente ejemplo, el controlador de eventos del evento Loading se usa para determinar si el formulario tiene firma digital y, si no es así, se establece el campo Date1 en la fecha actual.

public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
   if (this.Signed)
   {
         e.CancelableArgs.Message = 
            "This form is digitally signed. Loading is cancelled.";
         e.CancelableArgs.Cancel = true;
   }

   XPathNavigator myDate = 
      CreateNavigator().SelectSingleNode("/my:myFields/my:date1",
      NamespaceManager);

   // Check for and delete xsi:nil="true" attribute.
   if (myDate.MoveToAttribute("nil", 
      "http://www.w3.org/2001/XMLSchema-instance"))
   {
      myDate.DeleteSelf();
   }

   myDate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"));
}
Public Sub FormEvents_Loading(ByVal sender As Object, _
   ByVal e As LoadingEventArgs)
   If (Me.Signed)Then
         e.CancelableArgs.Message = 
            "This form is digitally signed. Loading is cancelled."
         e.CancelableArgs.Cancel = True
   End If

   Dim myDate As XPathNavigator = 
      CreateNavigator().SelectSingleNode("/my:myFields/my:date1",
      NamespaceManager)

   ' Check for and delete xsi:nil="true" attribute.
   If (myDate.MoveToAttribute("nil", 
      "http://www.w3.org/2001/XMLSchema-instance"))
      myDate.DeleteSelf();
   End If

   myDate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"));
End Sub

Vea también

Referencia

FormEvents (Clase)
FormEvents (Miembros)
Microsoft.Office.InfoPath (Espacio de nombres)