Partager via


Gestion des volets de tâches personnalisés dans plusieurs fenêtres d'application

Mise à jour : novembre 2007

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et applications de Microsoft Office spécifiés.

Type de projet

  • Projets au niveau de l'application

Application Microsoft Office

  • Excel 2007

  • InfoPath 2007

  • Outlook 2007

  • PowerPoint 2007

  • Word 2007

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Lorsque vous créez un volet de tâches personnalisé dans une application qui utilise plusieurs fenêtres pour afficher des documents et d'autres éléments, vous devez prendre des mesures supplémentaires afin de garantir l'affichage du volet de tâches lorsque l'utilisateur attend qu'il le soit.

Les volets de tâches personnalisés de toutes les applications sont associés à une fenêtre frame de document, qui présente une vue d'un document ou élément à l'utilisateur. Le volet de tâches n'est visible que lorsque la fenêtre associée est visible. Toutes les applications n'utilisent cependant pas les fenêtres frame de document de la même façon.

Les groupes d'applications suivants ont des exigences différentes en termes de développement :

  • Outlook

  • Word et InfoPath

  • Excel et PowerPoint

Outlook

Lorsque vous créez un volet de tâches personnalisé pour Outlook, celui-ci est associé à une fenêtre Explorateur ou Inspecteur spécifique. Les fenêtres Explorateur affichent le contenu d'un dossier, tandis que les fenêtres Inspecteur affichent un élément tel qu'un message électronique ou une tâche.

Pour afficher un volet de tâches personnalisé avec plusieurs fenêtres Explorateur ou Inspecteur, vous devez créer une nouvelle instance de ce volet lorsqu'une fenêtre Explorateur ou Inspecteur apparaît. Pour cela, gérez un événement qui se déclenche lorsqu'une fenêtre Explorateur ou Inspecteur est créée, puis créez le volet de tâches dans le gestionnaire d'événements. Vous pouvez également gérer des événements Explorateur et Inspecteur pour masquer ou afficher des volets de tâches en fonction de la fenêtre visible.

Pour associer le volet de tâches à un Explorateur ou un Inspecteur spécifique, utilisez la méthode CustomTaskPaneCollection.Add(UserControl, String, Object) pour créer le volet de tâches, puis passez l'objet Explorer ou Inspector au paramètre window. Pour plus d'informations sur la création de volets de tâches personnalisés, consultez Vue d'ensemble des volets de tâches personnalisés.

Pour une procédure pas à pas expliquant comment créer un volet de tâches pour chaque message électronique ouvert, consultez Procédure pas à pas : affichage de volets de tâches personnalisés avec des messages électroniques dans Outlook.

Événements Outlook

Pour analyser l'état des fenêtres Explorateur, vous pouvez gérer les événements Explorateur suivants :

Pour analyser l'état des fenêtres Inspecteur, vous pouvez gérer les événements Inspecteur suivants :

Empêcher plusieurs instances d'un volet de tâches personnalisé dans Outlook

Pour éviter que les fenêtres Outlook affichent plusieurs instances d'un volet de tâches personnalisé, supprimez explicitement le volet de tâches personnalisé de la collection CustomTaskPanes de la classe ThisAddIn lors de la fermeture de chaque fenêtre. Appelez la méthode Remove dans un événement qui est déclenché lorsqu'une fenêtre est fermée, tel que ExplorerEvents_10_Event.Close ou InspectorEvents_10_Event.Close.

Si vous ne supprimez pas explicitement le volet de tâches personnalisé, les fenêtres Outlook risquent d'afficher plusieurs instances de ce volet. Parfois, Outlook recycle des fenêtres, et ces fenêtres recyclées conservent des références à tout volet de tâches personnalisé qui pouvait leur être associé.

Word et InfoPath

Word et InfoPath affichent chaque document dans une fenêtre frame de document différente. Lorsque vous créez un volet de tâches personnalisé pour ces applications, celui-ci est associé à un document spécifique uniquement. Si l'utilisateur ouvre un document différent, le volet de tâches personnalisé est masqué jusqu'à ce que le document antérieur soit à nouveau visible.

Pour afficher un volet de tâches personnalisé avec plusieurs documents, créez une nouvelle instance de ce volet lorsque l'utilisateur crée un document ou ouvre un document existant. Pour ce faire, gérez des événements qui se déclenchent lorsqu'un document est créé ou ouvert, puis créez le volet de tâches dans les gestionnaires d'événements. Vous pouvez également gérer des événements de document pour masquer ou afficher des volets de tâches en fonction du document visible.

Pour associer le volet de tâches à une fenêtre de document spécifique, utilisez la méthode CustomTaskPaneCollection.Add(UserControl, String, Object) pour créer le volet de tâches, puis passez un Microsoft.Office.Interop.Word.Window (pour Word) ou un Microsoft.Office.Interop.InfoPath.WindowObject (pour InfoPath) au paramètre window. Pour plus d'informations sur la création de volets de tâches personnalisés, consultez Vue d'ensemble des volets de tâches personnalisés.

Événements Word

Vous pouvez gérer les événements suivants pour surveiller l'état de fenêtres de document dans Word :

Événements InfoPath

Vous pouvez gérer les événements suivants pour surveiller l'état de fenêtres de document dans InfoPath :

Excel et PowerPoint

Excel et PowerPoint créent une fenêtre frame de document pour tous les documents (autrement dit, pour les classeurs et les présentations). Lorsque vous créez un volet de tâches personnalisé dans ces applications, celui-ci est disponible pour chaque document ouvert dans l'application. Aucun travail supplémentaire de votre part n'est requis pour garantir l'affichage du volet de tâches pour chaque document.

Cependant, en fonction du document actif, vous pouvez souhaiter masquer ou afficher le volet de tâches ou encore afficher des éléments de l'interface utilisateur ou des données différents dans le volet de tâches. Pour ce faire, gérez des événements qui se déclenchent lorsqu'un document est créé, ouvert ou activé, puis mettez le volet de tâches à jour dans les gestionnaires d'événements.

Événements Excel

Vous pouvez gérer les événements suivants pour surveiller l'état de classeurs dans Excel :

Événements PowerPoint

Vous pouvez gérer les événements suivants pour surveiller l'état de présentations dans PowerPoint :

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterNewPresentation

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterPresentationOpen

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.NewPresentation

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.PresentationOpen

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowActivate

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowDeactivate

Exemple

L'exemple de code suivant explique comment masquer ou afficher un volet de tâches personnalisé dans un gestionnaire d'événements pour l'événement WorkbookActivate dans un complément Excel. Lorsque tous les classeurs sont activés, le volet de tâches n'est visible que si le classeur est appelé SalesData.xls ; sinon, il est masqué. Pour exécuter cet exemple, remplacez le gestionnaire d'événements ThisAddIn_Startup par défaut généré par Visual Studio Tools pour Office dans la classe ThisAddIn avec le code suivant. Cet exemple part du principe que votre projet inclut un UserControl appelé UserControl1.

Dim myUserControl As UserControl1
Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
    myUserControl = New UserControl1()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl, "Sales Task Pane")
End Sub

Private Sub Application_WorkbookActivate(ByVal Wb As Excel.Workbook) _
    Handles Application.WorkbookActivate

    If Wb.Name = "SalesData.xlsx" Then
        myCustomTaskPane.Visible = True
    Else
        myCustomTaskPane.Visible = False
    End If
End Sub
private UserControl1 myUserControl;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    this.Application.WorkbookActivate += new Excel.AppEvents_WorkbookActivateEventHandler(
        Application_WorkbookActivate);

    myUserControl = new UserControl1();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl, "Sales Task Pane");
}

void Application_WorkbookActivate(Excel.Workbook Wb)
{
    if (Wb.Name == "SalesData.xlsx")
        myCustomTaskPane.Visible = true;
    else
        myCustomTaskPane.Visible = false;
}

Voir aussi

Tâches

Comment : ajouter un volet de tâches personnalisé à une application

Procédure pas à pas : affichage de volets de tâches personnalisés avec des messages électroniques dans Outlook

Comment : afficher des volets de tâches personnalisés avec des messages électroniques dans Outlook

Procédure pas à pas : synchronisation d'un volet de tâches personnalisé avec un bouton dans le ruban

Concepts

Vue d'ensemble des volets de tâches personnalisés