Evento XmlEvent.Changing

Si verifica dopo che sono state apportate modifiche al documento XML sottostante di un modulo, ma prima che tali modifiche siano state accettate.

Spazio dei nomi: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Sintassi

Public Event Changing As XmlChangingEventHandler

Dim instance As XmlEvent
Dim handler As XmlChangingEventHandler

AddHandler instance.Changing, handler
public abstract event XmlChangingEventHandler Changing

Eccezioni

Tipo eccezione Condizione

InvalidOperationException

Lo sviluppatore ha cercato di associare l'evento in una posizione diversa dal metodo InternalStartup.

InvalidOperationException

Lo sviluppatore ha cercato di associare l'evento a un nodo in un'origine dati secondaria. Questo evento non è supportato per le origini dati secondarie.

Osservazioni

Importante:

Gli sviluppatori non devono creare un'istanza dell'evento Changing nel codice del modulo. Quando si aggiunge un gestore eventi al modello di modulo dall'interfaccia utente in modalità progettazione, tramite Microsoft Office InfoPath 2007 viene generato codice nel metodo InternalStartup del file di codice del modulo utilizzando la classe EventManager e il membro della classe XmlEvent per associare gli eventi a livello di documento ai relativi gestori eventi. Per informazioni su come aggiungere gestori eventi in modalità progettazione di InfoPath, vedere Procedura: Aggiungere un gestore eventi.

L'evento Changing viene associato utilizzando il delegato XmlChangingEventHandler.

Questo gestore eventi consente di annullare un'operazione.

Durante l'evento Changing, il documento XML sottostante del modulo viene impostato in modalità di sola lettura. Se la proprietà XmlChangingEventArgs.CancelableArgs.Cancel è impostata su true, le modifiche apportate vengono rifiutate da InfoPath e viene visualizzata una finestra di messaggio. Se si verifica un errore nel codice per l'evento Changing, le modifiche vengono rifiutate da InfoPath e viene ripristinato lo stato precedente dei dati.

Nota:

È consigliabile evitare di cambiare visualizzazione durante l'evento Changing, poiché le modifiche non sono ancora state accettate e il passaggio a un'altra visualizzazione potrebbe causare un errore.

A questo tipo o membro può accedere solo il codice in esecuzione in moduli aperti in Microsoft Office InfoPath 2007.

Esempio

Nell'esempio seguente viene apportata una modifica a field2 e, di conseguenza, viene generato l'evento Changing e un oggetto FormError relativo a field1 viene aggiunto all'insieme FormErrorCollection del modulo utilizzando il metodo Add della classe FormErrorCollection.

In questo modo, viene associato un messaggio di errore a field1. La stringa passata come parametro message del metodo Add viene visualizzata in una descrizione comando quando l'utente passa con il puntatore del mouse su field1. Quando l'utente fa clic con il pulsante destro del mouse su field1 e quindi fa clic su Descrizione errore completa, in InfoPath viene visualizzato il messaggio di errore completo inclusa la stringa passata come parametro messageDetails del metodo 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

Vedere anche

Riferimenti

Classe XmlEvent
Membri XmlEvent
Spazio dei nomi Microsoft.Office.InfoPath