Compartir a través de


XmlEvent.Changing Evento

Definición

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

public:
 abstract event Microsoft::Office::InfoPath::XmlChangingEventHandler ^ Changing;
public abstract event Microsoft.Office.InfoPath.XmlChangingEventHandler Changing;
member this.Changing : Microsoft.Office.InfoPath.XmlChangingEventHandler 
Public MustOverride Custom Event Changing As XmlChangingEventHandler 

Tipo de evento

Excepciones

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.

Ejemplos

En el ejemplo siguiente, cuando se realiza un cambio en field2, se genera el evento Changing y se agrega un FormError objeto para field1 al form FormErrorCollection del formulario mediante el Add(XPathNavigator, String, String, String) método de la clase FormErrorCollection .

Así se asocia un mensaje de error a field1. La cadena pasada como message parámetro del método Add se muestra en una sugerencia de pantalla cuando el usuario mantiene el puntero sobre field1. Cuando el usuario hace clic con el botón derecho en field1 y, a continuación, hace clic en Descripción completa del error, InfoPath muestra el mensaje de error completo, incluida la cadena pasada como messageDetails parámetro 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

Comentarios

Importante: El evento Changing no está pensado para que el desarrollador cree una instancia 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 de formulario mediante la EventManager clase y el miembro de la XmlEvent clase para enlazar eventos de 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 mediante el XmlChangingEventHandler delegado.

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: Es mejor evitar el cambio de vistas durante el evento Changing ; los cambios aún no se han aceptado y cambiar a otra vista puede dar lugar a 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.

Se aplica a