Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 |
|---|---|
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
Importante: