|
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
|
Traduction
Source
|
Procédure pas à pas : création de menus contextuels pour les signets
S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document pour Word 2013 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.
Remarque |
|---|
|
Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de 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. |
-
Une édition de Visual Studio 2012 qui inclut les outils de développement Microsoft Office. Pour plus d'informations, consultez Configuration d'un ordinateur pour développer des solutions Office.
-
Word 2013 ou Word 2010
Pour créer un projet
-
Créez un projet de document Word portant le nom My Bookmark Shortcut Menu. Dans l'Assistant, sélectionnez Créer un nouveau document. Pour plus d’informations, consultez Comment : créer des projets Office dans Visual Studio. Visual Studio ouvre le nouveau document Word dans le concepteur et ajoute le projet My Bookmark Shortcut Menu à l'Explorateur de solutions.
Pour ajouter du texte à votre document
-
Dans le document qui apparaît dans le concepteur de votre projet, tapez le texte suivant. Il s'agit d'un exemple de création d'un menu contextuel lorsque vous cliquez avec le bouton droit sur le texte dans un signet.
Pour ajouter un contrôle Bookmark à votre document
-
Dans Boîte à outils, de l'onglet Contrôles Word , faites glisser un contrôle de Bookmark à votre document. La boîte de dialogue Ajouter un contrôle Bookmark s'affiche. -
Sélectionnez les mots « création d'un menu contextuel lorsque vous cliquez avec le bouton droit sur le texte », puis cliquez sur OK. bookmark1 est ajouté au document. -
Ajoutez un autre contrôle d' Bookmark aux mots « bouton droit sur le texte dans un signet ». bookmark2 est ajouté au document.
Remarque
Les mots « bouton droit sur le texte » sont dans bookmark1 et bookmark2.
Pour ajouter des commandes à un menu contextuel
-
Ajoutez un élément XML Ruban au projet. Pour plus d’informations, consultez Comment : démarrer avec la personnalisation du ruban. -
Dans Explorateur de solutions, ThisDocument.cs activez ou ThisDocument.vb. -
Dans la barre de menus, sélectionnez Affichage, Code. Le fichier de classe ThisDocument s'ouvre dans l'éditeur de code. -
Ajoutez le code suivant à la classe ThisDocument . Ce code substitue la méthode CreateRibbonExtensibilityObject et retourne la classe Ribbon XML à l'application Office. -
Dans Explorateur de solutions, sélectionnez le fichier XML du Ruban. Par défaut, le fichier XML du Ruban est nommé Ribbon1.xml. -
Dans la barre de menus, sélectionnez Affichage, Code. Le fichier XML du ruban s'ouvre dans l'éditeur de code. -
Dans l'éditeur de code, remplacez le contenu du fichier XML du Ruban par le code suivant. <?xml version="1.0" encoding="UTF-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load"> <contextMenus> <contextMenu idMso="ContextMenuText"> <button id="BoldButton" label="Bold" onAction="ButtonClick" getVisible="GetVisible" /> <button id="ItalicButton" label="Italic" onAction="ButtonClick" getVisible="GetVisible"/> </contextMenu> </contextMenus> </customUI>Ce code ajoute deux boutons au menu contextuel qui s'affiche lorsque vous cliquez avec le bouton droit sur le document. -
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ThisDocument, puis cliquez sur Afficher le code. -
Déclarez les variables suivantes et une variable de signet au niveau de la classe. -
Dans Explorateur de solutions, sélectionnez le fichier de code du ruban. Par défaut, le fichier de code du ruban est nommé Ribbon1.cs ou Ribbon1.vb. -
Dans la barre de menus, sélectionnez Affichage, Code. Le fichier de code du ruban s'ouvre dans l'éditeur de code. -
Dans le fichier de code du ruban, ajoutez la méthode suivante. C'est une méthode de rappel pour les deux boutons que vous avez ajoutés au menu contextuel du document. Cette méthode détermine si ces boutons apparaissent dans le menu contextuel. Les boutons gras et italique apparaissent uniquement si vous cliquez avec le bouton droit sur le texte dans le signet. public bool GetVisible(Office.IRibbonControl control) { if (control.Id == "BoldButton") { if (Globals.ThisDocument.showBoldButton == true) { Globals.ThisDocument.showBoldButton = false; return true; } else { return false; } } else if (control.Id == "ItalicButton") { if (Globals.ThisDocument.showItalicButton == true) { Globals.ThisDocument.showItalicButton = false; return true; } else { return false; } } else { return false; } }
Pour mettre en forme le texte dans le signet
-
Dans le fichier de code du ruban, ajoutez un gestionnaire d'événements d' ButtonClick pour appliquer la mise en forme au signet. public void ButtonClick(Office.IRibbonControl control) { if (control.Id == "BoldButton") { if (Globals.ThisDocument.selectedBookmark.Bold == Globals.ThisDocument.WordTrue) { Globals.ThisDocument.selectedBookmark.Bold = Globals.ThisDocument.WordFalse; } else { Globals.ThisDocument.selectedBookmark.Bold = Globals.ThisDocument.WordTrue; } } else if (control.Id == "ItalicButton") { if (Globals.ThisDocument.selectedBookmark.Italic == Globals.ThisDocument.WordTrue) { Globals.ThisDocument.selectedBookmark.Italic = Globals.ThisDocument.WordFalse; } else { Globals.ThisDocument.selectedBookmark.Italic = Globals.ThisDocument.WordTrue; } } }
-
Explorateur de solutions, ThisDocument.cs activez ou ThisDocument.vb. -
Dans la barre de menus, sélectionnez Affichage, Code. Le fichier de classe ThisDocument s'ouvre dans l'éditeur de code. -
Ajoutez le code suivant à la classe ThisDocument . void bookmark_BeforeRightClick(object sender, ClickEventArgs e) { int startPosition = 0; // If bookmarks overlap, get bookmark closest to cursor. for (int i = 1; i <= e.Selection.Bookmarks.Count; i++) { if (e.Selection.Bookmarks[i].Start > startPosition) { startPosition = e.Selection.Bookmarks[i].Start; } } // If closest bookmark is the sender, show shortcut menu options. if (((Microsoft.Office.Tools.Word.Bookmark)sender).Start == startPosition) { selectedBookmark = (Microsoft.Office.Tools.Word.Bookmark)sender; showBoldButton = true; showItalicButton = true; } }
Remarque
Vous devez écrire du code pour gérer la superposition éventuelle des signets. Si vous ne le faites pas, par défaut, le code sera appelé pour tous les signets de la sélection. -
En C#, vous devez ajouter des gestionnaires d'événements pour les contrôles Bookmark à l'événement Startup. Pour plus d'informations sur la création de gestionnaires d'événements, consultez Comment : créer des gestionnaires d'événements dans les projets Office. private void ThisDocument_Startup(object sender, System.EventArgs e) { this.bookmark1.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick); this.bookmark2.BeforeRightClick += new ClickEventHandler(bookmark_BeforeRightClick); }
Pour tester votre document
-
Appuyez sur F5 pour exécuter votre projet. -
Cliquez avec le bouton droit dans le premier signet, puis cliquez sur Gras. -
Vérifiez que la mise en forme de l'ensemble du texte dans bookmark1 est en gras. -
Cliquez avec le bouton droit sur le texte, à l'endroit où les signets se chevauchent, puis cliquez sur Italique. -
Vérifiez que sont en italique tout le texte de bookmark2 et seulement la partie du texte de bookmark1 qui recoupe bookmark2.
-
Écrire du code pour répondre aux événements de contrôles hôtes dans Excel. Pour plus d’informations, consultez Procédure pas à pas : programmation d'événements d'un contrôle NamedRange. -
Utiliser une case à cocher pour modifier la mise en forme d'un signet. Pour plus d’informations, consultez Procédure pas à pas : modification de la mise en forme d'un document à l'aide de contrôles CheckBox.