Gestion des volets de tâches personnalisés dans plusieurs fenêtres d'application
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.
S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau application pour les applications suivantes : Excel 2007, Excel 2010, InfoPath 2007, InfoPath 2010, Outlook 2007, Outlook 2010, PowerPoint 2007, PowerPoint 2010, Word 2007 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.
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, InfoPath et PowerPoint 2010
Excel et PowerPoint 2007
Pour une démonstration vidéo connexe, consultez Comment faire pour gérer les volets de tâches dans les compléments Word ? (page éventuellement en anglais).
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, InfoPath et PowerPoint 2010
Word, InfoPath et PowerPoint 2010 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), un Microsoft.Office.Interop.InfoPath.WindowObject (pour InfoPath) ou un Microsoft.Office.Interop.PowerPoint.DocumentWindow (pour PowerPoint) au paramètre window.
Pour plus d'informations, consultez Gérer les volets de tâches dans plusieurs documents Word et InfoPath (page éventuellement en anglais). Cet article traite exclusivement de Word et InfoPath, cependant les concepts qui y sont mentionnés s'appliquent également à PowerPoint 2010, car cette version de PowerPoint possède une interface SDI.
É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 :
Événements PowerPoint
Vous pouvez gérer les événements suivants pour surveiller l'état des fenêtres de document dans PowerPoint 2010 :
Excel et PowerPoint 2007
Excel et PowerPoint 2007 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 des présentations dans PowerPoint 2007 :
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 dans la classe ThisAddIn par 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
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
Autres ressources
Vue d'ensemble des volets de tâches personnalisés
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Mai 2010 |
Ajout de détails concernant la gestion des volets de tâches personnalisés dans PowerPoint 2010. |
Améliorations apportées aux informations. |