Evento FormEvents.Loading

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 MustOverride Event Loading As LoadingEventHandler
'Uso
Dim instance As FormEvents
Dim handler As LoadingEventHandler

AddHandler instance.Loading, handler
public abstract event LoadingEventHandler Loading

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 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 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 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 una biblioteca de documentos configurada adecuadamente de SharePoint Server 2010 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 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 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

clase FormEvents

Miembros FormEvents

Espacio de nombres Microsoft.Office.InfoPath