Share via


XmlEvent.Changing - Événement

Se produit après que des modifications ont été apportées au document XML sous-jacent d'un formulaire mais avant qu'elles aient été acceptées.

Espace de noms :  Microsoft.Office.InfoPath
Assembly :  Microsoft.Office.InfoPath (dans Microsoft.Office.InfoPath.dll)

Syntaxe

'Déclaration
Public MustOverride Event Changing As XmlChangingEventHandler
'Utilisation
Dim instance As XmlEvent
Dim handler As XmlChangingEventHandler

AddHandler instance.Changing, handler
public abstract event XmlChangingEventHandler Changing

Exceptions

Exception Condition
InvalidOperationException

Le développeur a tenté de lier l'événement dans un emplacement autre que la méthode InternalStartup.

InvalidOperationException

Le développeur a tenté de lier l'événement à un nœud dans la source de données secondaire. Cet événement n'est pas pris en charge pour les sources de données secondaires.

Remarques

Important

L'événement Changing n'est pas destiné à être instancié par le développeur dans le code de formulaire. Lorsque vous ajoutez un gestionnaire d'événements à votre modèle de formulaire à partir de l'interface utilisateur en mode Création, Microsoft InfoPath génère du code dans la méthode InternalStartup du fichier de code de votre formulaire à l'aide de la classe EventManager et du membre de la classe XmlEvent pour lier les événements au niveau du document à leurs gestionnaires d'événements. Pour plus d'informations sur l'ajout de gestionnaires d'événements en mode Création dans InfoPath, consultez Procédure : Ajouter un gestionnaire d'événements.

L'événement Changing est lié à l'aide du délégué XmlChangingEventHandler.

Ce gestionnaire d’événements permet aux utilisateurs d’annuler une opération.

Pendant l'événement Changing, le document XML sous-jacent du formulaire est mis en mode lecture seule. Si la propriété XmlChangingEventArgs.CancelableArgs.Cancel est affectée de la valeur true, InfoPath refuse les modifications apportées et un message est affiché à l'intention de l'utilisateur. Si une erreur se produit dans le code de l'événement Changing, InfoPath rejette les modifications et rétablit l'état précédent des données.

Notes

Il est préférable d'éviter de changer de vue pendant l'événement Changing ; les modifications n'ont pas encore été acceptées et le changement de vue risque de provoquer une erreur.

Vous pouvez uniquement accéder à ce type ou à ce membre à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler.

Exemples

Dans l'exemple suivant, une modification apportée à field2 déclenche un événement Changing et un objet FormError associé à field1 est ajouté à la collection FormErrorCollection du formulaire à l'aide de la méthode Add de la classe FormErrorCollection.

Cet exemple associe un message d'erreur à field1. La chaîne passée en tant que paramètre message de la méthode Add est affichée dans une info-bulle lorsque l'utilisateur fait passer le curseur de la souris sur field1. Lorsque l'utilisateur clique avec le bouton droit sur field1 puis clique sur Description complète de l'erreur, InfoPath affiche le message d'erreur complet, y compris la chaîne passée en tant que paramètre messageDetails de la méthode 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

Voir aussi

Référence

XmlEvent classe

XmlEvent - Membres

Microsoft.Office.InfoPath - Espace de noms