Procédure pas à pas : modification du volet Actions en fonction du contexte utilisateur
Mise à jour : novembre 2007
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Cette procédure pas à pas explique comment répondre aux événements XMLNode. Lorsqu'un utilisateur déplace le curseur sur un document, les contrôles s'affichent ou se masquent sur le volet Actions.
Cette procédure pas à pas illustre les tâches suivantes :
Ajout de contrôles au volet Actions
Affichage du volet Actions lorsque l'application s'ouvre
Masquage et affichage de contrôles sur le volet Actions en fonction des actions utilisateur dans les nœuds XML
Remarque : |
---|
Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio. |
Composants requis
Vous avez besoin des composants suivants pour exécuter cette procédure pas à pas :
Visual Studio Tools pour Office (composant facultatif de Visual Studio 2008 Professional et Visual Studio Team System)
Microsoft Office Word 2003.
Remarque : |
---|
Vous pouvez également effectuer cette procédure pas à pas à l'aide de Word 2007. Certaines instructions supposent toutefois que vous utilisez les menus de Word 2003. |
Visual Studio Tools pour Office est installé par défaut avec les versions répertoriées de Visual Studio. Pour vérifier s'il est installé, consultez Installation de Visual Studio Tools pour Office.
Création du projet
La première étape consiste à créer un projet de document Word.
Pour créer un projet
Créez un projet de document Word et nommez-le Mon volet Actions dynamique. Dans l'Assistant, sélectionnez Créer un nouveau document. Pour plus d'informations, consultez Comment : créer des projets Visual Studio Tools pour Office.
Visual Studio ouvre le nouveau document Word dans le concepteur et ajoute le projet Mon volet Actions dynamique à l'Explorateur de solutions.
Création d'un schéma à mapper au document
Pour créer les nœuds XML, faites glisser des éléments d'un schéma XML vers le document. Créez d'abord un fichier de schéma, puis un document qui correspond au schéma. Ensuite, mappez les éléments au document.
Pour créer le schéma XML
Sélectionnez le projet Mon volet Actions dynamique dans l'Explorateur de solutions.
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
La boîte de dialogue Ajouter un nouvel élément s'affiche alors.
Dans le volet Modèles, sélectionnez Schéma XML.
Nommez le schéma ActionsPaneSample.xsd et cliquez sur Ajouter.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ActionsPaneSample.xsd, puis cliquez sur Ouvrir avec.
Dans la boîte de dialogue Ouvrir avec, sélectionnez Éditeur XML, puis cliquez sur OK.
Remplacez le texte dans l'Éditeur XML par le texte suivant.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema targetNamespace="https://schemas.microsoft.com/vsto/samples" elementFormDefault="qualified" xmlns="https://schemas.microsoft.com/vsto/samples" xmlns:mstns="https://schemas.microsoft.com/vsto/samples" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Sample" type="SampleType"></xs:element> <xs:complexType name="SampleType"> <xs:all> <xs:element name="Insert" type="InsertType" minOccurs="0" maxOccurs="1" /> <xs:element name="Table" type="xs:string" minOccurs="0" maxOccurs="1" /> </xs:all> </xs:complexType> <xs:complexType name="InsertType"> <xs:sequence> <xs:element name="MemoTo" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="MemoFrom" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="MemoSubject" type="xs:string" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:schema>
Enregistrez votre projet.
Ajout de texte et d'éléments XML au document
Le document de cette procédure pas à pas se présente sous la forme d'une note. Ajoutez du texte au document, puis mappez des éléments XML à des parties du document.
Pour ajouter du texte à votre document
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ThisDocument.cs ou ThisDocument.vb, puis cliquez sur Concepteur de vues.
Ajoutez le texte suivant à votre document Word.
MEMORANDUM
To:
From:
Subject:
Le tableau suivant répertorie les informations sur le contact que vous avez demandées :
Name
Address
City
State
Postal Code
Nancy Davolio
507 - 20th Ave. E., Apt. 2A
Seattle
WA
98122
Ensuite, mappez des éléments XML au texte de la note. Un contrôle XMLNode est créé pour chaque élément XML que vous mappez. Le contrôle XMLNode est nommé en ajoutant les noms des éléments parent et enfant au mot Node. Par exemple, si vous mappez l'élément Insert à partir du schéma précité, il est nommé SampleInsertNode. Pour plus d'informations sur les contrôles, consultez Vue d'ensemble des éléments hôtes et des contrôles hôtes.
Pour attacher le schéma à votre document
Ouvrez la boîte de dialogue Modèles et compléments. Pour l'ouvrir dans Word 2007 :
Dans le ruban, cliquez sur l'onglet Développeur.
Remarque : Si l'onglet Développeur n'est pas visible, vous devez d'abord l'afficher. Pour plus d'informations, consultez Comment : afficher l'onglet Développeur sur le ruban.
Dans le groupe XML, cliquez sur Schéma.
La boîte de dialogue Modèles et compléments s'ouvre.
Pour ouvrir la boîte de dialogue Modèles et compléments dans Word 2003 :
Dans le menu Outils, pointez sur Outils Microsoft Office Word, puis cliquez sur Modèles et compléments.
La boîte de dialogue Modèles et compléments s'ouvre.
Remarque : Si Outils Microsoft Office Word n'est pas disponible dans le menu Outils, cliquez sur le document pour lui donner le focus. Pour plus d'informations, consultez Menus Office dans l'environnement Visual Studio.
Dans la boîte de dialogue Modèles et compléments, cliquez sur l'onglet Schéma XML, puis sur Ajouter un schéma.
Naviguez jusqu'au schéma ActionsPaneSample.xsd précédemment créé qui est situé dans le répertoire du projet et cliquez sur Ouvrir.
Cliquez sur OK dans la boîte de dialogue Paramètres du schéma.
Cliquez sur OK pour fermer la boîte de dialogue Modèles et compléments.
Le volet de tâches Structure XML s'affiche.
Pour mapper des éléments XML à votre document
Cliquez sur l'élément Sample dans le volet de tâches Structure XML.
À l'invite, cliquez sur Appliquer à l'ensemble du document.
Sélectionnez les trois lignes de texte À, De et Objet, puis cliquez sur l'élément Insérer dans le volet de tâches Structure XML.
Placez votre curseur après To:, appuyez deux fois sur la touche TAB et cliquez sur l'élément MemoTo pour l'insérer.
Placez votre curseur après From:, appuyez deux fois sur la touche TAB et cliquez sur l'élément MemoFrom.
Placez votre curseur après Subject:, appuyez une fois sur la touche TAB et cliquez sur l'élément MemoSubject.
Sélectionnez la table de sorte que la table entière soit mise en surbrillance, puis cliquez sur l'élément Table pour l'appliquer.
Les balises XML apparaissent dans les cellules du tableau.
Désactivez la case à cocher Afficher les balises XML dans le document.
Cliquez sur Options XML dans la partie inférieure du volet de tâches Structure XML.
Activez la case à cocher Ignorer le contenu mixte et cliquez sur OK.
Fermez le volet de tâches Structure XML.
Ajout de contrôles au volet Actions
Pour concevoir la disposition des contrôles sur le volet Actions, vous utilisez le concepteur d'un contrôle appelé « contrôle de volet Actions », qui est fondamentalement identique à un contrôle utilisateur. Vous pouvez faire glisser d'autres contrôles, tels des boutons et des zones de texte, sur le contrôle de volet Actions et les réorganiser. Pour modifier le volet Actions en fonction du contexte d'utilisateur, ajoutez et concevez un contrôle de volet Actions pour chaque contexte, puis affichez et masquez les contrôles comme vous le souhaitez.
Cette procédure pas à pas utilise trois contrôles de volet Actions. Le premier contrôle contient trois zones de texte et un bouton qui permettent à l'utilisateur d'entrer des données et de les ajouter au document. Le deuxième contrôle contient un bouton qui ouvre la boîte de dialogue Propriétés du tableau. Enfin, le troisième contrôle de volet Actions contient une case à cocher qui permet d'afficher tous les contrôles dans le volet Actions, quelle que soit la position du curseur dans le document.
Pour ajouter un contrôle de volet Actions
Sélectionnez le projet Mon volet Actions dynamique dans l'Explorateur de solutions.
Dans le menu Projet, cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Contrôle de volet Actions, nommez-le AddTextControl et cliquez sur Ajouter.
Remplacez la valeur de la propriété Size du contrôle de volet Actions par 170, 135.
Pour ajouter des contrôles Windows Forms au premier contrôle de volet Actions
À partir de l'onglet Windows Forms de la boîte à outils, faites glisser un contrôle Label vers AddTextControl et remplacez la propriété Text par To:.
Ajoutez un contrôle Textbox à AddTextControl, puis modifiez les propriétés suivantes.
Propriété
Valeur
Name
toBox
Size
110, 20
Ajoutez un deuxième contrôle Label à AddTextControl et remplacez la propriété Text par From:.
Ajoutez un deuxième contrôle Textbox à AddTextControl et modifiez les propriétés suivantes.
Propriété
Valeur
Name
fromBox
Size
110, 20
Ajoutez un troisième contrôle Label à AddTextControl sous la zone de texte précédente et remplacez la propriété Text par Subject:.
Ajoutez un troisième contrôle Textbox à AddTextControl en regard de l'étiquette précédente, puis modifiez les propriétés suivantes.
Propriété
Valeur
Name
subjectBox
Multiline
True
Size
110, 40
Redimensionnez la zone de texte subjectBox pour activer plusieurs lignes.
Ajoutez un contrôle Button à AddTextControl et modifiez les propriétés suivantes.
Propriété
Valeur
Name
insertText
Text
Insérer
Pour créer le deuxième contrôle de volet Actions
Ajoutez un deuxième contrôle de volet Actions à votre projet et nommez-le ShowPropertiesControl.
Remplacez la valeur de la propriété Size du contrôle de volet Actions par 170, 50.
À partir de l'onglet Windows Forms de la boîte à outils, faites glisser un contrôle Button vers ShowPropertiesControl, puis modifiez les propriétés suivantes.
Propriété
Valeur
Name
tableProperties
Text
Propriétés du tableau
Enabled
False
Size
100, 23
En C#, remplacez la valeur de la propriété Modifiers du bouton par Internal.
Pour créer le troisième contrôle de volet Actions
Ajoutez un troisième contrôle de volet Actions à votre projet et nommez-le ShowAllControl.
Remplacez la valeur de la propriété Size du contrôle de volet Actions par 170, 75.
À partir de l'onglet Windows Forms de la boîte à outils, ajoutez un contrôle GroupBox à ShowAllControl, puis remplacez la valeur de la propriété Text par Mon volet Actions.
Ajoutez un contrôle CheckBox à ShowAllControl dans la partie supérieure de la zone de groupe, puis modifiez les propriétés suivantes.
Propriété
Valeur
Name
showCheck
Text
Afficher tous les contrôles
En C#, remplacez la valeur de la propriété Modifiers de la case à cocher par Internal.
Ajout de code pour répondre au contexte utilisateur
Vous pouvez à présent écrire le code permettant d'afficher le volet Actions et ajouter et supprimer des contrôles de volet Actions en fonction de la position du curseur dans le document. Le code est inséré dans les gestionnaires d'événements des contrôles XMLNode.
Pour ajouter du code aux événements de contrôle XMLNode
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ThisDocument.vb ou ThisDocument.cs, puis sélectionnez Afficher le code.
Créez une référence variable pour chaque contrôle de volet Actions dans la section des déclarations de ThisDocument.
Dim addText As New AddTextControl Dim showProperties As New ShowPropertiesControl Dim showAll As New ShowAllControl Friend WithEvents showCheck As System.Windows.Forms.CheckBox
private AddTextControl addText = new AddTextControl(); private ShowPropertiesControl showProperties = new ShowPropertiesControl(); private ShowAllControl showAll = new ShowAllControl();
Dans le gestionnaire d'événements Startup de ThisDocument, écrivez le code suivant pour ajouter le contrôle ShowAllControl et afficher le volet Actions.
Me.ActionsPane.Controls.Add(showAll) showCheck = showAll.showCheck
this.ActionsPane.Controls.Add(showAll);
Remarque : L'ordre dans lequel vous ajoutez les contrôles au volet Actions détermine leur positionnement. Si vous possédez un contrôle qui sera toujours visible dans la partie supérieure du volet Actions, vous devez l'ajouter en premier. L'ordre dépend également de la propriété StackOrder du volet Actions. Pour plus d'informations, consultez Comment : gérer la disposition des contrôles dans les volets Actions.
Ajoutez le code suivant au gestionnaire d'événements ContextEnter du contrôle SampleInsertNode.
Private Sub SampleInsertNode_ContextEnter(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleInsertNode.ContextEnter If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Add(addText) Me.ActionsPane.Controls.Remove(showProperties) End If End Sub
private void SampleInsertNode_ContextEnter(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Add(addText); this.ActionsPane.Controls.Remove(showProperties); } }
Ajoutez le code suivant au gestionnaire d'événements ContextLeave du contrôle SampleInsertNode pour masquer le contrôle une fois que l'utilisateur a déplacé le curseur en dehors de ce nœud XML.
Private Sub SampleInsertNode_ContextLeave(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleInsertNode.ContextLeave If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Remove(addText) End If End Sub
private void SampleInsertNode_ContextLeave(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Remove(addText); } }
Ajoutez le code suivant au gestionnaire d'événements ContextEnter du contrôle SampleTableNode.
Private Sub SampleTableNode_ContextEnter(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleTableNode.ContextEnter If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Remove(addText) Me.ActionsPane.Controls.Add(showProperties) End If showProperties.tableProperties.Enabled = True End Sub
private void SampleTableNode_ContextEnter(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Remove(addText); this.ActionsPane.Controls.Add(showProperties); } showProperties.tableProperties.Enabled = true; }
Ajoutez le code suivant au gestionnaire d'événements ContextLeave du contrôle SampleTableNode pour masquer le contrôle une fois que l'utilisateur a déplacé le curseur en dehors de ce nœud XML.
Private Sub SampleTableNode_ContextLeave(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleTableNode.ContextLeave If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Remove(showProperties) End If showProperties.tableProperties.Enabled = False End Sub
private void SampleTableNode_ContextLeave(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Remove(showProperties); } showProperties.tableProperties.Enabled = false; }
En C#, vous devez ajouter des gestionnaires d'événements pour les contrôles XMLNode. Vous pouvez placer ce code dans le gestionnaire d'événements Startup de ThisDocument. Pour plus d'informations sur la création de gestionnaires d'événements, consultez Comment : créer des gestionnaires d'événements dans Visual Studio Tools pour Office.
this.SampleInsertNode.ContextEnter += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleInsertNode_ContextEnter); this.SampleInsertNode.ContextLeave += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleInsertNode_ContextLeave); this.SampleTableNode.ContextEnter += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleTableNode_ContextEnter); this.SampleTableNode.ContextLeave += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleTableNode_ContextLeave);
Point de contrôle
Enregistrez votre projet et vérifiez que les contrôles de volet Actions changent à mesure que vous déplacez votre curseur dans le document.
Pour tester le projet
Appuyez sur F5 pour exécuter votre projet.
Déplacez votre point d'insertion sur le mot To et vérifiez que le contrôle de volet Actions addText est visible dans le volet Actions.
Déplacez votre point d'insertion à l'intérieur de la table et vérifiez que le contrôle de volet Actions showProperties est visible dans le volet Actions.
Déplacez votre point d'insertion sur le mot MEMORANDUM et vérifiez que les contrôles de volet Actions addText et showProperties ne sont pas visibles dans le volet Actions.
Ajout de code pour répondre aux événements de contrôle dans le volet Actions
Jusqu'à présent, les contrôles du volet Actions n'effectuent aucune action. La dernière étape consiste à écrire le code permettant d'afficher tous les contrôles, d'insérer du texte et d'afficher la boîte de dialogue Propriétés du tableau.
Pour afficher tous les contrôles dans le volet Actions
Ajoutez le code suivant à ThisDocument.
Private Sub showCheck_CheckStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles showCheck.CheckStateChanged If showAll.showCheck.Checked = True Then Me.ActionsPane.Controls.Add(addText) Me.ActionsPane.Controls.Add(showProperties) Else Me.ActionsPane.Controls.Remove(addText) Me.ActionsPane.Controls.Remove(showProperties) End If End Sub
private void showCheck_CheckStateChanged(object sender, EventArgs e) { if (showAll.showCheck.Checked) { this.ActionsPane.Controls.Add(addText); this.ActionsPane.Controls.Add(showProperties); } else { this.ActionsPane.Controls.Remove(addText); this.ActionsPane.Controls.Remove(showProperties); } }
En C#, vous devez ajouter un gestionnaire d'événements pour le contrôle checkbox. Vous pouvez placer ce code dans le gestionnaire d'événements Startup de ThisDocument.
showAll.showCheck.CheckStateChanged += new EventHandler(showCheck_CheckStateChanged);
Pour insérer du texte lorsque l'utilisateur clique sur le bouton Insérer
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur AddTextControl.vb ou AddTextControl.cs, puis cliquez sur Afficher le code.
Dans le gestionnaire d'événements Click du bouton insertText, écrivez le code suivant.
Private Sub insertText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles insertText.Click With Globals.ThisDocument .InsertMemoFromNode.Text = Me.fromBox.Text .InsertMemoToNode.Text = Me.toBox.Text .InsertMemoSubjectNode.Text = Me.subjectBox.Text End With ' Clear the text boxes. Me.fromBox.Text = "" Me.toBox.Text = "" Me.subjectBox.Text = "" End Sub
private void insertText_Click(object sender, System.EventArgs e) { Globals.ThisDocument.InsertMemoFromNode.Text = this.fromBox.Text; Globals.ThisDocument.InsertMemoToNode.Text = this.toBox.Text; Globals.ThisDocument.InsertMemoSubjectNode.Text = this.subjectBox.Text; // Clear the text boxes. this.fromBox.Text = ""; this.toBox.Text = ""; this.subjectBox.Text = ""; }
En C#, vous devez ajouter un gestionnaire d'événements pour le bouton. Vous pouvez placer ce code dans le constructeur AddTextControl, après l'appel à InitializeComponent.
public AddTextControl() { InitializeComponent(); this.insertText.Click += new System.EventHandler(this.insertText_Click); }
Pour afficher la boîte de dialogue Propriétés du tableau
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ShowPropertiesControl.vb ou ShowPropertiesControl.cs, puis cliquez sur Afficher le code.
Ajoutez le code suivant au gestionnaire d'événements Click du bouton tableProperties.
Private Sub tableProperties_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles tableProperties.Click Globals.ThisDocument.Application.Dialogs( _ Word.WdWordDialog.wdDialogTableProperties).Show() End Sub
private void tableProperties_Click(object sender, System.EventArgs e) { object timeout = 0; Globals.ThisDocument.Application.Dialogs[ Microsoft.Office.Interop.Word.WdWordDialog.wdDialogTableProperties] .Show(ref timeout); }
En C#, vous devez ajouter un gestionnaire d'événements pour le bouton. Vous pouvez placer ce code dans le constructeur ShowPropertiesControl, après l'appel à InitializeComponent.
public ShowPropertiesControl() { InitializeComponent(); this.tableProperties.Click += new System.EventHandler(this.tableProperties_Click); }
Test de l'application
Maintenant, vous pouvez tester votre document de manière plus approfondie pour vérifier les fonctionnalités des contrôles de volet Actions.
Pour tester votre document
Appuyez sur F5 pour exécuter votre projet.
Vérifiez que le volet Actions est visible.
Déplacez votre curseur jusqu'à la section du document qui contient les lignes To, From et Subject, puis vérifiez que les contrôles addText apparaissent dans le volet Actions.
Entrez le texte dans les zones de texte To, From et Subject du volet Actions, puis cliquez sur Insérer.
Déplacez votre curseur jusqu'à la table et vérifiez que le contrôle showProperties apparaît dans le volet Actions.
Cliquez sur le bouton Propriétés du tableau et vérifiez que la boîte de dialogue Propriétés du tableau s'affiche.
Activez la case à cocher Afficher tout et vérifiez que tous les contrôles dans le volet Actions sont visibles.
Déplacez votre curseur en dehors de la table et vérifiez que le bouton Propriétés du tableau est désactivé.
Étapes suivantes
Cette procédure pas à pas présente les notions de la base de la modification du volet Actions selon le contexte utilisateur. Vous devrez peut-être ensuite exécuter les opérations suivantes :
Déploiement du projet. Pour plus d'informations, consultez Comment : déployer des solutions Office (Office System 2003).
Liaison de données aux contrôles dans Word. Pour plus d'informations, consultez Procédure pas à pas : liaison de données aux contrôles dans un volet Actions Word.
Liaison de données aux contrôles dans Excel. Pour plus d'informations, consultez Procédure pas à pas : liaison de données aux contrôles dans un volet Actions Excel.
Voir aussi
Tâches
Comment : ajouter un volet Actions à des documents Word
Comment : ajouter un volet Actions à des classeurs Excel
Comment : gérer la disposition des contrôles dans les volets Actions