Procédure pas à pas : ajouter des contrôles à un document au moment de l’exécution dans un complément VSTO
Vous pouvez ajouter des contrôles à n’importe quel document Microsoft Bureau Word ouvert à l’aide d’un complément VSTO. Cette procédure pas à pas montre comment utiliser le ruban pour permettre aux utilisateurs d’ajouter un Button ou un RichTextContentControl document.
S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets de compléments VSTO pour Word 2010. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.
Cette procédure pas à pas décrit les tâches suivantes :
Création d’un projet de complément VSTO Word.
Mise à disposition d’une interface utilisateur permettant d’ajouter des contrôles au document.
Ajout de contrôles au document au moment de l’exécution.
Suppression de contrôles dans le document.
Remarque
Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués 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 Personnaliser l’IDE.
Prérequis
Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :
Une édition de Visual Studio qui inclut les outils de développement Microsoft Office. Pour plus d’informations, consultez Configurer un ordinateur pour développer des solutions Bureau.
Word 2013 ou Word 2010 .
Créer un projet de complément Word
Commencez par créer un projet de complément VSTO Word.
Pour créer un projet de complément VSTO Word
Créez un projet de complément VSTO pour Word avec le nom WordDynamicControls. Pour plus d’informations, consultez Guide pratique pour créer des projets Bureau dans Visual Studio.
Ajoutez une référence à l’assembly Microsoft.Office.Tools.Word.v4.0.Utilities.dll . Cette référence est obligatoire pour ajouter par programmation un contrôle Windows Forms au document, plus loin dans cette procédure pas à pas.
Fournir une interface utilisateur pour ajouter des contrôles à un document
Ajoutez un onglet personnalisé au ruban dans Word. Les utilisateurs peuvent cocher des cases sous l’onglet pour ajouter des contrôles à un document.
Pour fournir une interface utilisateur permettant d’ajouter des contrôles à un document
Dans le menu Projet , cliquez sur Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément , sélectionnez Ruban (Concepteur visuel).
Remplacez le nom du nouveau ruban par MyRibbon, puis cliquez sur Ajouter.
Le fichier MyRibbon.cs ou MyRibbon.vb s'ouvre dans le Concepteur de ruban et affiche un onglet et un groupe par défaut.
Dans le Concepteur de ruban, cliquez sur le groupe group1 .
Dans la fenêtre Propriétés , affectez Ajouter des contrôles comme propriété Étiquette de group1.
Sous l’onglet Contrôles de ruban Office de la Boîte à outils, faites glisser un contrôle CheckBox sur group1.
Cliquez sur CheckBox1 pour le sélectionner.
Dans la fenêtre Propriétés , changez les propriétés suivantes.
Propriété Valeur Nom addButtonCheckBox Étiquette Bouton Ajouter Ajoutez une deuxième case à cocher pour group1, puis modifiez les propriétés suivantes.
Propriété Valeur Nom addRichTextCheckBox Étiquette Ajouter un contrôle de texte enrichi Dans le Concepteur de ruban, double-cliquez sur Bouton Ajouter.
Le gestionnaire d’événements Click de la case à cocher Bouton Ajouter s’ouvre dans l’éditeur de code.
Revenez au Concepteur de ruban et double-cliquez sur Ajouter un contrôle de texte enrichi.
Le gestionnaire d’événements Click de la case à cocher Ajouter un contrôle de texte enrichi s’ouvre dans l’éditeur de code.
Plus loin dans cette procédure pas à pas, vous ajouterez du code à ces gestionnaires d’événements pour ajouter et supprimer des contrôles dans le document actif.
Ajouter et supprimer des contrôles sur le document actif
Dans le code de complément VSTO, vous devez convertir le document actif en DocumentT:Microsoft.Office.Tools.Word.Document avant de pouvoir ajouter un contrôle. Dans les solutions Office, vous ne pouvez ajouter des contrôles managés qu’à des éléments hôtes, qui agissent comme des conteneurs pour les contrôles. Dans les projets de complément VSTO, les éléments hôtes peuvent être créés au moment de l’exécution à l’aide de la GetVstoObject
méthode.
Ajoutez des méthodes à la classe ThisAddIn
qui peut être appelée pour ajouter ou supprimer un Button ou RichTextContentControl dans le document actif. Plus loin dans cette procédure, vous appellerez ces méthodes à partir des gestionnaires d’événements Click des cases à cocher dans le ruban.
Pour ajouter et supprimer des contrôles dans le document actif
Dans Explorateur de solutions, double-cliquez sur ThisAddIn.cs ou ThisAddIn.vb pour ouvrir le fichier dans l’éditeur de code.
Ajoutez le code suivant à la classe
ThisAddIn
. Ce code déclare des objets Button et RichTextContentControl qui représentent les contrôles qui seront ajoutés au document.Ajoutez la méthode suivante à la classe
ThisAddIn
. Quand l’utilisateur clique sur la case à cocher Bouton Ajouter dans le ruban, cette méthode ajoute un Button à la sélection actuelle dans le document si la case est cochée, ou supprime le Button si la case est décochée.internal void ToggleButtonOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyButton"; if (Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { button = vstoDocument.Controls.AddButton( selection.Range, 100, 30, name); } } else { vstoDocument.Controls.Remove(name); } }
Ajoutez la méthode suivante à la classe
ThisAddIn
. Quand l’utilisateur clique sur la case à cocher Ajouter un contrôle de texte enrichi dans le ruban, cette méthode ajoute un RichTextContentControl à la sélection actuelle dans le document si la case est cochée, ou supprime le RichTextContentControl si la case est décochée.internal void ToggleRichTextControlOnDocument() { Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); string name = "MyRichTextBoxControl"; if (Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked) { Word.Selection selection = this.Application.Selection; if (selection != null && selection.Range != null) { richTextControl = vstoDocument.Controls.AddRichTextContentControl( selection.Range, name); } } else { vstoDocument.Controls.Remove(name); } }
Supprimer le contrôle Button lorsque le document est enregistré
Les contrôles Windows Forms ne sont pas conservés lorsque le document est enregistré puis fermé. Toutefois, un wrapper ActiveX pour chaque contrôle reste dans le document, et la bordure de ce wrapper est visible par les utilisateurs finaux quand le document est rouvert. Il existe plusieurs façons de propre des contrôles Windows Forms créés dynamiquement dans les compléments VSTO. Dans cette procédure pas à pas, vous supprimez par programme le Button contrôle lorsque le document est enregistré.
Pour supprimer le contrôle Button quand le document est enregistré
Dans le fichier de code ThisAddIn.cs ou ThisAddIn.vb , ajoutez la méthode suivante à la
ThisAddIn
classe. Cette méthode est un gestionnaire d’événements pour l’événement DocumentBeforeSave . Si le document enregistré a un élément hôte Document qui lui est associé, le gestionnaire d’événements obtient l’élément hôte et supprime le contrôle Button , s’il existe.private void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel) { bool isExtended = Globals.Factory.HasVstoObject(Doc); if (isExtended) { Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(Doc); if (vstoDocument.Controls.Contains(button)) { vstoDocument.Controls.Remove(button); Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = false; } } }
En C#, ajoutez le code suivant au gestionnaire d’événements
ThisAddIn_Startup
. Ce code est nécessaire en C# pour connecter le gestionnaire d’événementsApplication_DocumentBeforeSave
à l’événement DocumentBeforeSave .this.Application.DocumentBeforeSave += new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler( Application_DocumentBeforeSave);
Ajouter et supprimer des contrôles lorsque l’utilisateur clique sur les zones case activée du ruban
Enfin, modifiez les Click gestionnaires d’événements des zones case activée que vous avez ajoutées au ruban pour ajouter ou supprimer des contrôles sur le document.
Pour ajouter ou supprimer des contrôles lorsque l’utilisateur clique sur les zones de case activée sur le ruban
Dans le fichier de code MyRibbon.cs ou MyRibbon.vb, remplacez les gestionnaires d’événements et
addRichTextCheckBox_Click
générésaddButtonCheckBox_Click
par le code suivant. Ce code redéfinit ces gestionnaires d’événements pour appeler les méthodesToggleButtonOnDocument
etToggleRichTextControlOnDocument
que vous avez ajoutées à la classeThisAddIn
plus tôt lors de cette procédure pas à pas.
Test de la solution
Ajoutez des contrôles à un document en les sélectionnant à partir de l’onglet personnalisé dans le ruban. Quand vous enregistrez le document, le contrôle Button est supprimé.
Pour tester la solution.
Appuyez sur F5 pour exécuter votre projet.
Dans le document actif, appuyez plusieurs fois sur Entrée pour ajouter de nouveaux paragraphes vides au document.
Sélectionnez le premier paragraphe.
Cliquez sur l'onglet Compléments .
Dans le groupe Ajouter des contrôles , cliquez sur Bouton Ajouter.
Un bouton apparaît dans le premier paragraphe.
Sélectionnez le dernier paragraphe.
Dans le groupe Ajouter des contrôles , cliquez sur Ajouter un contrôle de texte enrichi.
Un contrôle de contenu de texte enrichi est ajouté au dernier paragraphe.
Enregistrez le document.
Le bouton est supprimé du document.
Étapes suivantes
Pour en savoir plus sur les contrôles dans les compléments VSTO, consultez les rubriques suivantes :
Pour obtenir un exemple qui montre comment ajouter de nombreux autres types de contrôles à un document au moment de l’exécution et recréer les contrôles lorsque le document est rouvert, consultez l’exemple de contrôles dynamiques de complément Word dans Bureau exemples de développement et procédures pas à pas.
Pour obtenir une procédure pas à pas qui montre comment ajouter des contrôles à une feuille de calcul à l’aide d’un complément VSTO pour Excel, consultez procédure pas à pas : Ajouter des contrôles à une feuille de calcul au moment de l’exécution dans le projet de complément VSTO.
Contenu connexe
- Solutions Word
- Ajouter des contrôles à Bureau documents au moment de l’exécution
- Conserver les contrôles dynamiques dans les documents Bureau
- Guide pratique pour ajouter des contrôles Windows Forms à Bureau documents
- Guide pratique pour ajouter des contrôles de contenu à des documents Word
- Étendre des documents Word et des classeurs Excel dans des compléments VSTO au moment de l’exécution