Partager via


FormEvents.ContextChanged Événement

Définition

Se produit après une modification du nœud de contexte.

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

Type d'événement

Exceptions

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

Exemples

L'exemple suivant suppose que votre formulaire comprend un contrôle Zone de texte lié à un champ appelé DisplayContext ainsi que des contrôles liés aux autres champs et groupes du formulaire. Lorsque la sélection est appliquée à d'autres champs et groupes, le nom du champ ou du groupe en question s'affiche dans le contrôle Zone de texte lié au champ DisplayContext.

public void FormEvents_ContextChanged(object sender, 
   ContextChangedEventArgs e)
{
   if (e.ChangeType == "ContextNode")
   {
      // Position a XPathNavigator on the DisplayContext field.
      XPathNavigator root, txtbox;
      root = this.MainDataSource.CreateNavigator();
      txtbox = root.SelectSingleNode("/my:myFields/my:DisplayContext", 
         this.NamespaceManager);

      // Set DisplayContext with the name of the current context.
      txtbox.SetValue(e.Context.Name);
      return;
   }
}
Public Sub FormEvents_ContextChanged(ByVal sender As Object, _
   ByVal e As ContextChangedEventArgs)
   If (e.ChangeType = "ContextNode") Then
      ' Position a XPathNavigator on the DisplayContext field.
      Dim root, txtbox As XPathNavigator
      root = Me.MainDataSource.CreateNavigator
      txtbox = root.SelectSingleNode("/my:myFields/my:DisplayContext", 
         Me.NamespaceManager)

      ' Set DisplayContext with the name of the current context.
      txtbox.SetValue(e.Context.Name)
      Return
   End If
End Sub

Remarques

Important : l’événement ContextChanged n’est pas destiné à être instancié par le développeur dans le code du formulaire. Vous devez uniquement ajouter des gestionnaires d’événements pour les événements au niveau du formulaire à partir de l’interface utilisateur du mode création Microsoft InfoPath. Lorsque vous ajoutez un gestionnaire d’événements à votre modèle de formulaire à partir de l’interface utilisateur en mode Création, InfoPath génère du code dans la méthode InternalStartup de votre fichier de code de formulaire à l’aide de la EventManager classe et du membre de la FormEvents classe pour lier l’événement à son gestionnaire 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 ContextChanged est lié à l’aide du ContextChangedEventHandler délégué.

Le nœud de contexte est le nœud XML mappé sur la vue qui correspond au conteneur (ou à l'élément) associé à la sélection XML active. Par exemple, si la sélection active de la vue se trouve dans une zone de texte, le nœud de contexte représente le nœud auquel la zone de texte est liée. Si la sélection active est une section extensible, le nœud de contexte représente le nœud lié à cet élément. Si deux sections extensibles sont sélectionnées, le nœud de contexte est le nœud XML ancêtre des deux éléments mappés à la vue.

L’événement ContextChanged est asynchrone. Il ne se déclenche pas à chaque modification dans le nœud de contexte ; au lieu de cela, il se déclenche une fois que l’application a arrêté de traiter d’autres événements.

Lorsque le document XML sous-jacent se charge, ou lorsqu’un changement d’affichage se produit, l’événement ContextChanged se produit après les Loading événements et ViewSwitched se produisent.

Lorsque la UndoRedo propriété de l’objet a la ContextChangedEventArgs valeur true, le changement de contexte a été provoqué par une opération d’annulation ou de rétablissement d’un utilisateur plutôt que par une modification explicite du contexte utilisateur. Il est conseillé d'éviter d'effectuer des opérations qui modifient le document XML sous-jacent dans le cadre de l'événement ContextChanged en réponse à des opérations d'annulation ou de rétablissement, car elles risquent d'interférer avec l'intention de l'utilisateur de restaurer des données à un état antérieur.

Pour les contrôles Zone de texte enrichi, l'événement ContextChanged n'est pas déclenché en réponse à des modifications de contexte dans le contenu XHTML, à savoir en réponse à des modifications de sélection du texte enrichi dans le contrôle. La GetContextNodes() méthode peut être utilisée pour déterminer la sélection dans les contrôles Zone de texte enrichi.

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

S’applique à