Comment : ajouter des contrôles de contenu à des documents Word
Mise à jour : Juillet 2008
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions spécifiés de Microsoft Office. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Dans les projets au niveau du document, vous pouvez ajouter des contrôles de contenu au document au moment du design ou au moment de l'exécution. À partir de Visual Studio 2008 Service Pack 1 (SP1), vous pouvez également ajouter des contrôles de contenu à tout document ouvert au moment de l'exécution en utilisant un complément d'application pour Word 2007.
Cette rubrique décrit les tâches suivantes :
Ajout de contrôles de contenu au moment du design
Ajout de contrôles de contenu au moment de l'exécution dans un projet au niveau du document
Ajout de contrôles de contenu au moment de l'exécution dans un projet au niveau de l'application
Pour plus d'informations sur les contrôles de contenu, consultez Contrôles de contenu.
Ajout de contrôles de contenu au moment du design
Il existe plusieurs manières d'ajouter des contrôles de contenu au document dans un projet au niveau du document au moment du design :
Ajoutez un contrôle de contenu à partir de l'onglet Contrôles Word de la Boîte à outils.
Ajoutez un contrôle de contenu à votre document de la manière dont vous ajouteriez un contrôle de contenu natif dans Word.
Faites glisser un contrôle de contenu vers votre document depuis la fenêtre Sources de données. Cette opération est utile lorsque vous souhaitez lier le contrôle à des données au moment de sa création. Pour plus d'informations, consultez Comment : remplir des documents avec les données d'objets et Comment : remplir des documents avec les données d'une base de données.
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. |
Pour ajouter un contrôle de contenu à un document en utilisant la Boîte à outils
Dans le document hébergé par le concepteur Visual Studio, placez le curseur où vous souhaitez ajouter le contrôle de contenu ou sélectionnez le texte qu'il doit remplacer.
Ouvrez la Boîte à outils et cliquez sur l'onglet Contrôles Word.
Ajoutez le contrôle de l'une des manières suivantes :
Double-cliquez sur un contrôle de contenu dans la Boîte à outils.
- ou -
Cliquez sur un contrôle de contenu dans la Boîte à outils, puis appuyez sur la touche ENTRÉE.
- ou -
Faites glisser un contrôle de contenu de la Boîte à outils vers le document. Le contrôle de contenu est ajouté à la sélection actuelle dans le document, mais pas à l'emplacement du pointeur de la souris.
Remarque : |
---|
Vous ne pouvez pas ajouter un GroupContentControl à l'aide de la Boîte à outils. Cette opération n'est possible que dans Word, ou au moment de l'exécution. |
Pour ajouter un contrôle de contenu à un document dans Word
Dans le document hébergé par le concepteur Visual Studio, placez le curseur où vous souhaitez ajouter le contrôle de contenu ou sélectionnez le texte qu'il doit remplacer.
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 Contrôles, cliquez sur l'icône du contrôle de contenu à ajouter.
Ajout de contrôles de contenu au moment de l'exécution dans un projet au niveau du document
Vous pouvez ajouter par programme des contrôles de contenu à votre document au moment de l'exécution en utilisant des méthodes de la propriété Controls de la classe ThisDocument dans votre projet. Chaque méthode possède trois surcharges que vous pouvez utiliser pour ajouter un contrôle de contenu de l'une des manières suivantes :
Ajoutez un contrôle à la sélection actuelle.
Ajoutez un contrôle à une plage spécifiée.
Ajoutez un contrôle basé sur un contrôle de contenu natif dans le document.
Les contrôles de contenu Visual Studio Tools pour Office créés dynamiquement ne sont pas conservés dans le document après sa fermeture. Toutefois, un contrôle de contenu natif reste dans le document. Vous pouvez recréer un contrôle de contenu Visual Studio Tools pour Office basé sur un contrôle de contenu natif dans le document lorsque vous le rouvrez. Pour plus d'informations, consultez Ajout de contrôles à des documents Office au moment de l'exécution.
Pour ajouter un contrôle de contenu à la sélection actuelle
Utilisez une méthode ControlCollection portant le nom Add<classe de contrôle> (où classe de contrôle est le nom de classe du contrôle de contenu que vous souhaitez ajouter, comme AddRichTextContentControl) et un paramètre unique pour le nom du nouveau contrôle.
L'exemple de code suivant utilise la méthode ControlCollection.AddRichTextContentControl(String) pour ajouter un nouveau RichTextContentControl au début du document. Pour exécuter ce code, ajoutez-le à la classe ThisDocument de votre projet et appelez la méthode AddRichTextControlAtSelection à partir du gestionnaire d'événements ThisDocument_Startup.
Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtSelection() Me.Paragraphs(1).Range.InsertParagraphBefore() Me.Paragraphs(1).Range.Select() richTextControl1 = Me.Controls.AddRichTextContentControl("richTextControl1") richTextControl1.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1; private void AddRichTextControlAtSelection() { this.Paragraphs[1].Range.InsertParagraphBefore(); this.Paragraphs[1].Range.Select(); richTextControl1 = this.Controls.AddRichTextContentControl("richTextControl1"); richTextControl1.PlaceholderText = "Enter your first name"; }
Pour ajouter un contrôle de contenu à une plage spécifiée
Utilisez une méthode ControlCollection qui porte le nom Add<classe de contrôle> (où classe de contrôle est le nom de la classe du contrôle de contenu à ajouter, comme AddRichTextContentControl) et possède un paramètre Microsoft.Office.Interop.Word.Range.
L'exemple de code suivant utilise la méthode ControlCollection.AddRichTextContentControl(Range, String) pour ajouter un nouveau RichTextContentControl au début du document. Pour exécuter ce code, ajoutez-le à la classe ThisDocument du projet et appelez la méthode AddRichTextControlAtRange à partir du gestionnaire d'événements ThisDocument_Startup.
Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtRange() Me.Paragraphs(1).Range.InsertParagraphBefore() richTextControl2 = Me.Controls.AddRichTextContentControl(Me.Paragraphs(1).Range, _ "richTextControl2") richTextControl2.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2; private void AddRichTextControlAtRange() { this.Paragraphs[1].Range.InsertParagraphBefore(); richTextControl2 = this.Controls.AddRichTextContentControl(this.Paragraphs[1].Range, "richTextControl2"); richTextControl2.PlaceholderText = "Enter your first name"; }
Pour ajouter un contrôle de contenu basé sur un contrôle de contenu natif
Utilisez une méthode ControlCollection qui porte le nom Add<classe de contrôle> (où classe de contrôle est le nom de la classe du contrôle de contenu à ajouter, comme AddRichTextContentControl) et possède un paramètre Microsoft.Office.Interop.Word.ContentControl.
L'exemple de code suivant utilise la méthode ControlCollection.AddRichTextContentControl(ContentControl, String) pour créer un RichTextContentControl pour chaque contrôle de texte enrichi natif présent dans le document. Pour exécuter ce code, ajoutez-le à la classe ThisDocument du projet et appelez la méthode CreateRichTextControlsFromNativeControls à partir du gestionnaire d'événements ThisDocument_Startup.
Private richTextControls As New System.Collections.Generic.List _ (Of Microsoft.Office.Tools.Word.RichTextContentControl) Private Sub CreateRichTextControlsFromNativeControls() If Me.ContentControls.Count <= 0 Then Return End If Dim count As Integer = 0 For Each nativeControl As Word.ContentControl In Me.ContentControls If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then count += 1 Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _ Me.Controls.AddRichTextContentControl(nativeControl, _ "VSTORichTextContentControl" + count.ToString()) richTextControls.Add(tempControl) End If Next nativeControl End Sub
private System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls; private void CreateRichTextControlsFromNativeControls() { if (this.ContentControls.Count <= 0) return; richTextControls = new System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl>(); int count = 0; foreach (Word.ContentControl nativeControl in this.ContentControls) { if (nativeControl.Type == Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText) { count++; Microsoft.Office.Tools.Word.RichTextContentControl tempControl = this.Controls.AddRichTextContentControl(nativeControl, "VSTORichTextControl" + count.ToString()); richTextControls.Add(tempControl); } } }
Ajout de contrôles de contenu au moment de l'exécution dans un projet au niveau de l'application
À partir du SP1, vous pouvez ajouter par programme des contrôles de contenu à tout document ouvert au moment de l'exécution en utilisant un complément d'application. Pour ce faire, générez un élément hôte Document basé sur un document ouvert, puis utilisez des méthodes de la propriété Controls de cet élément hôte. Chaque méthode possède trois surcharges que vous pouvez utiliser pour ajouter un contrôle de contenu de l'une des manières suivantes :
Ajoutez un contrôle à la sélection actuelle.
Ajoutez un contrôle à une plage spécifiée.
Ajoutez un contrôle basé sur un contrôle de contenu natif dans le document.
Les contrôles de contenu Visual Studio Tools pour Office créés dynamiquement ne sont pas conservés dans le document après sa fermeture. Toutefois, un contrôle de contenu natif reste dans le document. Vous pouvez recréer un contrôle de contenu Visual Studio Tools pour Office basé sur un contrôle de contenu natif dans le document lorsque vous le rouvrez. Pour plus d'informations, consultez Rendre des contrôles dynamiques persistants dans des documents Office.
Pour plus d'informations sur la génération d'éléments hôtes dans des projets au niveau de l'application, consultez Extension de documents Word et de classeurs Excel dans des compléments d'application au moment de l'exécution..
Pour ajouter un contrôle de contenu à la sélection actuelle
Utilisez une méthode ControlCollection portant le nom Add<classe de contrôle> (où classe de contrôle est le nom de classe du contrôle de contenu que vous souhaitez ajouter, comme AddRichTextContentControl) et un paramètre unique pour le nom du nouveau contrôle.
L'exemple de code suivant utilise la méthode ControlCollection.AddRichTextContentControl(String) pour ajouter un nouveau RichTextContentControl au début du document actif. Pour exécuter ce code, ajoutez-le à la classe ThisAddIn du projet et appelez la méthode AddRichTextControlAtSelection à partir du gestionnaire d'événements ThisAddIn_Startup.
Dim richTextControl1 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtSelection() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() currentDocument.Paragraphs(1).Range.Select() Dim extendedDocument As Document = currentDocument.GetVstoObject() richTextControl1 = extendedDocument.Controls.AddRichTextContentControl("richTextControl1") richTextControl1.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl1; private void AddRichTextControlAtSelection() { Word.Document currentDocument = this.Application.ActiveDocument; currentDocument.Paragraphs[1].Range.InsertParagraphBefore(); currentDocument.Paragraphs[1].Range.Select(); Document extendedDocument = currentDocument.GetVstoObject(); richTextControl1 = extendedDocument.Controls.AddRichTextContentControl( "richTextControl1"); richTextControl1.PlaceholderText = "Enter your first name"; }
Pour ajouter un contrôle de contenu à une plage spécifiée
Utilisez une méthode ControlCollection qui porte le nom Add<classe de contrôle> (où classe de contrôle est le nom de la classe du contrôle de contenu à ajouter, comme AddRichTextContentControl) et possède un paramètre Microsoft.Office.Interop.Word.Range.
L'exemple de code suivant utilise la méthode ControlCollection.AddRichTextContentControl(Range, String) pour ajouter un nouveau RichTextContentControl au début du document actif. Pour exécuter ce code, ajoutez-le à la classe ThisAddIn du projet et appelez la méthode AddRichTextControlAtRange à partir du gestionnaire d'événements ThisAddIn_Startup.
Dim richTextControl2 As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddRichTextControlAtRange() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() Dim extendedDocument As Document = currentDocument.GetVstoObject() richTextControl2 = extendedDocument.Controls.AddRichTextContentControl( _ extendedDocument.Paragraphs(1).Range, "richTextControl2") richTextControl2.PlaceholderText = "Enter your first name" End Sub
private Microsoft.Office.Tools.Word.RichTextContentControl richTextControl2; private void AddRichTextControlAtRange() { Word.Document currentDocument = this.Application.ActiveDocument; currentDocument.Paragraphs[1].Range.InsertParagraphBefore(); Document extendedDocument = currentDocument.GetVstoObject(); richTextControl2 = extendedDocument.Controls.AddRichTextContentControl( currentDocument.Paragraphs[1].Range, "richTextControl2"); richTextControl2.PlaceholderText = "Enter your first name"; }
Pour ajouter un contrôle de contenu basé sur un contrôle de contenu natif
Utilisez une méthode ControlCollection qui porte le nom Add<classe de contrôle> (où classe de contrôle est le nom de la classe du contrôle de contenu à ajouter, comme AddRichTextContentControl) et possède un paramètre Microsoft.Office.Interop.Word.ContentControl.
L'exemple de code suivant utilise la méthode ControlCollection.AddRichTextContentControl(ContentControl, String) pour créer un RichTextContentControl pour chaque contrôle de texte riche natif présent dans le document après son ouverture. Pour exécuter ce code, ajoutez le code à la classe ThisAddIn de votre projet.
Private richTextControls As New System.Collections.Generic.List _ (Of Microsoft.Office.Tools.Word.RichTextContentControl) Private Sub Application_DocumentOpen(ByVal Doc As Microsoft.Office.Interop.Word.Document) _ Handles Application.DocumentOpen If Doc.ContentControls.Count > 0 Then Dim extendedDocument As Document = Doc.GetVstoObject() Dim count As Integer = 0 For Each nativeControl As Word.ContentControl In Doc.ContentControls If nativeControl.Type = Word.WdContentControlType.wdContentControlRichText Then count += 1 Dim tempControl As Microsoft.Office.Tools.Word.RichTextContentControl = _ extendedDocument.Controls.AddRichTextContentControl(nativeControl, _ "VSTORichTextContentControl" + count.ToString()) richTextControls.Add(tempControl) End If Next nativeControl End If End Sub
private System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls; private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc) { if (Doc.ContentControls.Count > 0) { Document extendedDocument = Doc.GetVstoObject(); richTextControls = new System.Collections.Generic.List <Microsoft.Office.Tools.Word.RichTextContentControl>(); int count = 0; foreach (Word.ContentControl nativeControl in Doc.ContentControls) { if (nativeControl.Type == Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText) { count++; Microsoft.Office.Tools.Word.RichTextContentControl tempControl = extendedDocument.Controls.AddRichTextContentControl(nativeControl, "VSTORichTextControl" + count.ToString()); richTextControls.Add(tempControl); } } } }
En C#, vous devez également attacher le gestionnaire d'événements Application_DocumentOpen à l'événement DocumentOpen.
this.Application.DocumentOpen += new Word.ApplicationEvents4_DocumentOpenEventHandler(Application_DocumentOpen);
Voir aussi
Concepts
Vue d'ensemble des éléments hôtes et des contrôles hôtes
Ajout de contrôles à des documents Office au moment de l'exécution
Limitations de programmation des éléments hôtes et des contrôles hôtes
Programmation de compléments d'application
Programmation de personnalisations au niveau du document
Méthodes d'assistance pour les contrôles hôtes
Autres ressources
Historique des modifications
Date |
Historique |
Raison |
---|---|---|
Juillet 2008 |
Procédures ajoutées pour les compléments d'application. |
Modifications de fonctionnalités dans le SP1. |