Share via


Evento XmlEvent.Changing

Ocurre después de que se hayan efectuado los cambios en el documento XML subyacente de un formulario, pero antes de aceptarlos.

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

Sintaxis

'Declaración
Public MustOverride Event Changing As XmlChangingEventHandler
'Uso
Dim instance As XmlEvent
Dim handler As XmlChangingEventHandler

AddHandler instance.Changing, handler
public abstract event XmlChangingEventHandler Changing

Excepciones

Excepción Condición
InvalidOperationException

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

InvalidOperationException

El programador intentó enlazar el evento a un nodo de un origen de datos secundario. Este evento no se puede usar para orígenes de datos secundarios.

Comentarios

Importante

El programador no debe crear instancias del evento Changing en el código de formulario. Al agregar un controlador de eventos a la plantilla de formulario desde la interfaz de usuario del modo de diseño, Microsoft InfoPath genera código en el método InternalStartup del archivo de código del formulario utilizando la clase EventManager y el miembro de la clase XmlEvent para enlazar eventos del nivel de documento a sus controladores 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 Changing se enlaza utilizando el delegado XmlChangingEventHandler.

Este controlador de eventos permite al usuario cancelar una operación.

Durante el evento Changing, el documento XML subyacente del formulario se pone en modo de sólo lectura. Si la propiedad XmlChangingEventArgs.CancelableArgs.Cancel está establecida en true, InfoPath rechaza los cambios realizados y se muestra un cuadro de mensaje al usuario. Si se produce un error en el código del evento Changing, InfoPath rechaza los cambios y restaura los datos a su estado anterior.

Nota

Se recomienda evitar cambiar de vista durante el evento Changing; los cambios aún no se han aceptado y al cambiar a otra vista se puede producir un error.

Ú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 ejemplo siguiente, cuando se lleva a cabo un cambio en field2, se desencadena el evento Changing y se agrega un objeto FormError para field1 a la colección FormErrorCollection del formulario utilizando el método Add de la clase FormErrorCollection.

Así se asocia un mensaje de error a field1. La cadena que se pasa como parámetro message del método Add se muestra en una sugerencia en pantalla cuando el usuario sitúa el puntero del mouse (ratón) sobre field1. Si el usuario hace clic con el botón secundario en field1 y, a continuación, hace clic en Descripción completa del error, InfoPath muestra el mensaje de error completo, incluida la cadena que se ha pasado como parámetro messageDetails del método Add.

public void field2_Changing(object sender, XmlChangingEventArgs e)
{
   XPathNavigator errNode = 
      this.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", 
      NamespaceManager);
   this.Errors.Add(errNode, "Field2Changing", 
      "The Changing event occurred for Field2.", 
      "Changes were made to Field2, but have not yet been accepted.");
}
Public Sub field2_Changing(ByVal sender As Object, _
   ByVal e As XmlChangingEventArgs)
   Dim errNode As XPathNavigator = Me.CreateNavigator(). _
      SelectSingleNode("/my:myFields/my:field1", NamespaceManager)
   Me.Errors.Add(errNode, "Field2Changing", _
      "The Changing event occurred for Field2.", _
      "Changes were made, but have not yet been accepted.")
End Sub

Vea también

Referencia

clase XmlEvent

Miembros XmlEvent

Espacio de nombres Microsoft.Office.InfoPath