Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les contrôles de contenu vous permettent de concevoir des documents et des modèles dotés de ces fonctionnalités :
Interface utilisateur qui a une entrée contrôlée comme un formulaire.
Restrictions qui empêchent les utilisateurs de modifier des sections protégées du document ou du modèle. Pour plus d’informations, consultez Protéger les parties de documents à l’aide de contrôles de contenu.
Liaison de données à une source de données. Pour plus d’informations, consultez Lier des données aux contrôles de contenu.
S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets au niveau du document et aux projets de complément VSTO pour Word. Pour plus d’informations, consultez Fonctionnalités disponibles par type d’application et de projet Office.
Pour une démonstration vidéo associée, consultez Lier des données à des contrôles de contenu Word 2007 à l’aide de Visual Studio Tools for the Office system (3.0).
À propos des contrôles de contenu
Les contrôles de contenu fournissent une interface utilisateur optimisée pour l’entrée utilisateur et l’impression. Lorsque vous ajoutez un contrôle de contenu à un document, le contrôle est identifié par une bordure, un titre et un texte temporaire pouvant fournir des instructions à l’utilisateur. La bordure et le titre du contrôle n’apparaissent pas dans les versions imprimées du document.
Par exemple, si vous souhaitez que l’utilisateur entre une date dans une section de votre document, vous pouvez ajouter un contrôle de contenu du sélecteur de dates au document. Lorsque les utilisateurs cliquent sur le contrôle, l’interface utilisateur du sélecteur de dates standard s’affiche. Vous pouvez également définir les propriétés du contrôle pour définir le calendrier régional affiché et spécifier le format de date. Une fois que l’utilisateur a choisi une date, l’interface utilisateur du contrôle est masquée et seule la date s’affiche si l’utilisateur imprime le document.
Les contrôles de contenu vous aident également à effectuer les opérations suivantes :
Empêcher les utilisateurs de modifier ou de supprimer des parties d’un document. Cela est utile si vous avez des informations dans un document ou un modèle que les utilisateurs doivent être en mesure de lire, mais pas de modifier, ou si vous souhaitez que les utilisateurs puissent modifier des contrôles de contenu, mais pas les supprimer.
Lier des parties d’un document ou d’un modèle aux données. Vous pouvez lier des contrôles de contenu aux champs de base de données, aux objets managés dans le .NET Framework, aux éléments XML stockés dans le document et à d’autres sources de données.
Dans les projets au niveau du document, vous pouvez ajouter des contrôles de contenu à votre document au moment du design ou au moment de l’exécution. Dans les projets de complément VSTO, vous pouvez ajouter des contrôles de contenu à n’importe quel document ouvert au moment de l’exécution. Pour plus d’informations, consultez Guide pratique pour ajouter des contrôles de contenu aux documents Word.
Note
Vous pouvez utiliser des contrôles de contenu uniquement dans les documents enregistrés au format Open XML. Vous ne pouvez pas utiliser de contrôles de contenu dans des documents enregistrés au format document Word 97-2003 (.doc).
Types de contrôles de contenu
Il existe neuf types de contrôles de contenu différents que vous pouvez ajouter à des documents. La plupart des contrôles de contenu ont un type correspondant dans l’espace de noms Microsoft.Office.Tools.Word. Vous pouvez également utiliser un générique ContentControl, qui peut représenter l’un des contrôles de contenu disponibles. Pour obtenir une procédure pas à pas qui montre comment utiliser chacun des contrôles de contenu disponibles, consultez Procédure pas à pas : Créer un modèle à l’aide de contrôles de contenu.
Galerie de blocs de construction
Une galerie de blocs de construction permet aux utilisateurs de sélectionner dans une liste de blocs de construction de documents à insérer dans un document. Un bloc de construction de document est un élément de contenu qui a été créé pour être utilisé plusieurs fois, comme une page de couverture commune, une table mise en forme ou un en-tête. Pour plus d’informations, consultez le BuildingBlockGalleryContentControl type. Pour plus d’informations sur les blocs de construction, consultez Nouveautés pour les développeurs dans Word 2007.
Case à coch.
Une case à cocher fournit une interface utilisateur qui représente un état binaire : sélectionnée ou désactivée.
Contrairement aux autres types de contrôles de contenu, Visual Studio Tools pour Office runtime ne fournit pas de type spécifique qui représente un contrôle de contenu à cocher. En d’autres termes, il n’y a pas CheckBoxContentControl de type. Toutefois, vous pouvez toujours créer un contrôle de contenu de case à cocher en ajoutant un générique ContentControl à un document par programmation. Pour plus d’informations, voir Contrôles de contenu de case à cocher dans les projets Word.
Zone de liste modifiable
Une zone de liste déroulante affiche une liste d’éléments que les utilisateurs peuvent sélectionner. Contrairement à une liste déroulante, la zone de liste combinée permet aux utilisateurs d’ajouter leurs propres éléments. Pour plus d’informations, consultez le ComboBoxContentControl type.
Sélecteur de dates
Un sélecteur de dates fournit une interface utilisateur de calendrier pour la sélection d’une date. Le calendrier s’affiche lorsque l’utilisateur final clique sur la flèche déroulante dans le contrôle. Vous pouvez utiliser des calendriers régionaux et différents formats de date. Pour plus d’informations, consultez le DatePickerContentControl type.
Liste déroulante
Une liste déroulante affiche une liste d’éléments que les utilisateurs peuvent sélectionner. Contrairement à une zone combinée, la liste déroulante ne permet pas aux utilisateurs d’ajouter ou de modifier des éléments. Pour plus d’informations, consultez le DropDownListContentControl type.
Groupe
Un contrôle de groupe définit une région protégée d’un document que les utilisateurs ne peuvent pas modifier ou supprimer. Un contrôle de groupe peut contenir tous les éléments de document, tels que du texte, des tableaux, des graphiques et d’autres contrôles de contenu. Pour plus d’informations, consultez le GroupContentControl type.
Image
Un contrôle d'image affiche une image. Vous pouvez spécifier l’image au moment du design ou au moment de l’exécution, ou les utilisateurs peuvent cliquer sur ce contrôle pour sélectionner une image à insérer dans le document. Pour plus d’informations, consultez le PictureContentControl type.
Texte enrichi
Un contrôle de texte enrichi contient du texte ou d’autres éléments, tels que des tableaux, des images ou d’autres contrôles de contenu. Pour plus d’informations, consultez le RichTextContentControl type.
Texte brut
Un contrôle de texte brut contient du texte. Un contrôle de texte brut ne peut pas contenir d’autres éléments, tels que des tableaux, des images ou d’autres contrôles de contenu. En outre, tout le texte d’un contrôle de texte brut a la même mise en forme. Par exemple, si vous italiquez un mot d’une phrase qui se trouve dans un contrôle de texte brut, tout le texte à l’intérieur du contrôle est italique. Pour plus d’informations, consultez le PlainTextContentControl type.
Contrôle de contenu générique
Un contrôle de contenu générique est un ContentControl objet qui peut représenter l’un des types disponibles de contrôles de contenu. Vous pouvez modifier un ContentControl objet pour qu’il se comporte comme un autre type de contrôle de contenu à l’aide de la Type propriété. Par exemple, si vous créez un ContentControl objet qui représente un contrôle de texte brut, vous pouvez le modifier au moment de l’exécution afin qu’il se comporte comme une zone de liste modifiable.
Vous pouvez créer ContentControl des objets uniquement au moment de l’exécution, et non au moment du design. Pour plus d’informations, consultez Guide pratique pour ajouter des contrôles de contenu aux documents Word.
Fonctionnalités courantes des contrôles de contenu
La plupart des contrôles de contenu partagent un ensemble de membres que vous pouvez utiliser pour effectuer des tâches courantes. Le tableau suivant décrit certaines des tâches que vous pouvez effectuer à l’aide de ces membres.
| Pour cette tâche : | Procédez comme suit : |
|---|---|
| Obtenez ou définissez le texte affiché dans le contrôle. | Utilisez la propriété Text . Note : Les types PictureContentControl et ContentControl n’ont pas cette propriété. |
| Obtenez ou définissez le texte temporaire affiché dans le contrôle jusqu’à ce qu’un utilisateur modifie le contrôle, que le contrôle soit rempli avec des données d’une source de données ou que le contenu du contrôle soit supprimé. | Utilisez la propriété PlaceholderText . Note: Le PictureContentControl type n’a pas cette propriété. |
| Obtenez ou définissez le titre affiché dans la bordure du contrôle de contenu lorsque l’utilisateur clique dessus. | Utilisez la propriété Title . |
| Supprimez automatiquement le contrôle du document une fois que l’utilisateur a modifié le contrôle. (Le texte du contrôle reste dans le document.) | Utilisez la propriété Temporaire . |
| Exécutez le code lorsque l’utilisateur clique dans le contrôle de contenu ou lorsque le curseur est déplacé dans le contrôle de contenu par programmation. | Gérez l’événement Entering du contrôle. |
| Exécutez du code lorsque l’utilisateur clique en dehors du contrôle de contenu ou lorsque le curseur est déplacé en dehors du contrôle de contenu par programmation. | Gérez l’événement Exiting du contrôle. |
| Exécutez du code après l’ajout du contrôle de contenu au document à la suite d’une opération de rétablissement ou d’annulation. | Gérez l’événement Added du contrôle. |
| Exécutez du code juste avant que le contrôle de contenu soit supprimé du document. | Gérez l’événement Deleting du contrôle. |
Protéger des parties de documents à l’aide de contrôles de contenu
Lorsque vous protégez une partie d’un document, vous empêchez les utilisateurs de modifier ou de supprimer le contenu dans cette partie du document. Il existe plusieurs façons de protéger des parties d’un document à l’aide de contrôles de contenu.
Si la zone à protéger se trouve à l’intérieur d’un contrôle de contenu, vous pouvez utiliser les propriétés du contrôle de contenu pour empêcher les utilisateurs de modifier ou de supprimer le contrôle :
La propriété LockContents empêche les utilisateurs de modifier le contenu.
La propriété LockContentControl empêche les utilisateurs de supprimer le contrôle.
Si la zone que vous souhaitez protéger n’est pas à l’intérieur d’un contrôle de contenu, ou si vous souhaitez protéger une zone qui contient des contrôles de contenu et d’autres types de contenu, vous pouvez placer l’ensemble de la zone dans un GroupContentControl. Contrairement à d’autres contrôles de contenu, une GroupContentControl interface utilisateur n’est pas visible par l’utilisateur. Son seul objectif est de définir une région que les utilisateurs ne peuvent pas modifier.
Note
Si vous créez un GroupContentControl qui contient des contrôles de contenu intégrés, les contrôles de contenu intégrés ne sont pas automatiquement protégés. Vous devez utiliser la propriété LockContents de chaque contrôle incorporé pour empêcher les utilisateurs de modifier leur contenu.
Pour plus d’informations sur l’utilisation de contrôles de contenu pour protéger des parties de documents, consultez Guide pratique pour protéger des parties de documents à l’aide de contrôles de contenu.
Lier des données à des contrôles de contenu
Vous pouvez afficher des données dans des documents en liant un contrôle de contenu à une source de données. Lorsque la source de données est mise à jour, le contrôle de contenu reflète les modifications. Vous pouvez également enregistrer les modifications apportées à la source de données.
Les contrôles de contenu fournissent les options de liaison de données suivantes :
Vous pouvez lier des contrôles de contenu aux champs de base de données ou aux objets managés à l’aide du même modèle de liaison de données que Windows Forms.
Vous pouvez lier des contrôles de contenu à des éléments dans des éléments XML (également nommés composants XML personnalisés) incorporés dans le document.
Pour obtenir une vue d'ensemble sur la liaison des contrôles hôtes aux données dans les solutions Office, consultez Lier des données aux contrôles dans les solutions Office.
Utiliser le modèle de liaison de données Windows Forms
La plupart des contrôles de contenu prennent en charge le modèle de liaison de données simple que Windows Forms utilise. La liaison de données simple signifie qu’un contrôle est lié à un seul élément de données, tel qu’une valeur dans une colonne d’une table de données. Pour plus d’informations, consultez Liaison de données et Windows Forms.
Dans les projets au niveau du document, vous pouvez lier des données à des contrôles de contenu à l’aide de la fenêtre Sources de données dans Visual Studio. Pour plus d’informations sur l’ajout de contrôles de contenu liés aux données à des documents, consultez Guide pratique pour remplir des documents avec des données d’une base de données et comment : remplir des documents à partir d’objets.
Le tableau suivant répertorie les contrôles de contenu que vous pouvez lier à chaque type de données dans la fenêtre Sources de données .
| Type de données | Contrôle de contenu par défaut | Autres contrôles de contenu pouvant être liés à ce type de données |
|---|---|---|
| Boolean Byte Char Double Enum Guid Int16 Int32 Int64 SByte Single String TimeSpan UInt16 UInt32 UInt64 |
PlainTextContentControl | BuildingBlockGalleryContentControl ComboBoxContentControl DatePickerContentControl RichTextContentControl |
| DateTime | DatePickerContentControl | BuildingBlockGalleryContentControl ComboBoxContentControl PlainTextContentControl RichTextContentControl |
| Image Byte tableau |
PictureContentControl | Aucun |
Dans les projets de compléments au niveau du document et VSTO, vous pouvez lier un contrôle de contenu à une source de données par programme à l’aide de la Add méthode de la DataBindings propriété du contrôle. Si vous effectuez cette opération, transmettez la chaîne Text au paramètre propertyName de la Add méthode. La propriété Text est la propriété de liaison de données par défaut des contrôles de contenu.
Les contrôles de contenu prennent également en charge la liaison de données bidirectionnelle, dans laquelle les modifications apportées au contrôle sont mises à jour vers la source de données. Pour plus d’informations, consultez Guide pratique pour mettre à jour une source de données avec des données à partir d’un contrôle hôte.
Note
Les contrôles de contenu ne prennent pas en charge la liaison de données complexe. Si vous liez un DropDownListContentControl ou un ComboBoxContentControl à une source de données en utilisant le modèle de données Windows Forms, les utilisateurs ne verront qu’une seule valeur lorsqu’ils cliquent sur le contrôle. Si vous souhaitez lier ces contrôles à un ensemble de valeurs de données parmi lesquelles les utilisateurs peuvent choisir, vous pouvez lier ces contrôles à des éléments dans une partie XML personnalisée.
Lier des contrôles de contenu à des parties XML personnalisées
Vous pouvez lier certains contrôles de contenu à des éléments dans des parties XML personnalisées incorporées dans le document. Pour plus d’informations sur les composants XML personnalisés, consultez la vue d’ensemble des composants XML personnalisés.
Pour lier un contrôle de contenu à un élément d’une partie XML personnalisée, utilisez la propriété XMLMapping du contrôle. L’exemple de code suivant montre comment lier un élément PlainTextContentControl au Price sous le nœud Product dans une partie personnalisée XML déjà ajoutée au document.
Pour obtenir une procédure pas à pas qui montre comment lier des contrôles de contenu à des parties XML personnalisées plus en détail, consultez Procédure pas à pas : Lier des contrôles de contenu à des parties XML personnalisées.
Lorsque vous liez un contrôle de contenu à une partie XML personnalisée, la liaison de données bidirectionnelle est automatiquement activée. Si un utilisateur modifie du texte dans le contrôle, les éléments XML correspondants sont automatiquement mis à jour. De même, si les valeurs d’élément dans les parties XML personnalisées sont modifiées, les contrôles de contenu liés aux éléments XML affichent les nouvelles données.
Vous pouvez lier les types de contrôles de contenu suivants aux parties XML personnalisées :
Événements de liaison de données pour les contrôles de contenu
Tous les contrôles de contenu fournissent un ensemble d’événements que vous pouvez gérer pour effectuer des tâches liées aux données, telles que la validation du texte d’un contrôle répondant à certains critères avant la mise à jour de la source de données. Le tableau suivant répertorie les événements de contrôle de contenu liés à la liaison de données.
| Tâche | Événement |
|---|---|
| Exécutez le code juste avant que Word met automatiquement à jour le texte d’un contrôle de contenu lié à une partie XML personnalisée. | ContentUpdating |
| Exécutez le code juste avant que Word met automatiquement à jour les données d’une partie XML personnalisée liée à un contrôle de contenu (autrement dit, après que le texte du contrôle de contenu change). | StoreUpdating |
| Exécutez votre propre code pour valider le contenu du contrôle en fonction de critères personnalisés. | Validating |
| Exécutez le code une fois que le contenu du contrôle a été validé avec succès. | Validated |
Limitations des contrôles de contenu
Lorsque vous utilisez des contrôles de contenu dans vos projets Office, tenez compte des limitations suivantes.
Différences de comportement entre l’heure de conception et le runtime
La plupart des limitations imposées par Microsoft Office Word aux contrôles de contenu au moment de l’exécution ne sont pas appliquées au moment du design. Lorsque vous concevez l’interface utilisateur d’une solution au niveau du document dans Visual Studio, veillez à modifier les contrôles de contenu uniquement de manière prise en charge au moment de l’exécution.
Si vous modifiez un contrôle de contenu au moment du design d’une manière que le contrôle ne prend pas en charge au moment de l’exécution, le concepteur Visual Studio ne vous avertit pas des modifications non prises en charge. Toutefois, lorsque vous déboguez ou exécutez le projet, ou si vous enregistrez et rouvrez le projet, Word affiche un message d’erreur et demande l’autorisation de réparer le document. Lorsque vous réparerez le document, Word supprime tout le contenu et les mises en forme non prises en charge de l'élément de contrôle.
Par exemple, Word n’empêche pas d’ajouter une table à un PlainTextContentControl au moment de la conception. Toutefois, étant donné que PlainTextContentControl les objets ne peuvent pas contenir de tables au moment de l’exécution, Word affiche un message d’erreur lorsque le document est ouvert.
Notez également que de nombreuses propriétés qui définissent le comportement des contrôles de contenu n’ont aucun effet au moment du design. Par exemple, si vous définissez la propriété LockContents d’un contrôle de contenu sur True au moment du design, vous pouvez toujours modifier du texte dans le contrôle dans le concepteur Visual Studio. Cette propriété empêche uniquement les utilisateurs de modifier le contrôle au moment de l’exécution.
Limitations des événements
Les contrôles de contenu ne fournissent pas d’événement déclenché lorsque l’utilisateur modifie du texte ou d’autres éléments du contrôle. Par exemple, il n’existe aucun événement déclenché lorsqu’un utilisateur sélectionne un autre élément dans un DropDownListContentControl ou ComboBoxContentControl.
Pour déterminer quand un utilisateur modifie le contenu d’un contrôle de contenu, vous pouvez lier le contrôle à une partie XML personnalisée, puis gérer l’événement StoreUpdating . Cet événement est déclenché lorsque l’utilisateur modifie le contenu d’un contrôle lié à une partie XML personnalisée. Pour obtenir une procédure pas à pas qui montre comment lier un contrôle de contenu à une partie XML personnalisée, consultez Procédure pas à pas : Lier des contrôles de contenu à des parties XML personnalisées.
Contrôles de contenu de case à cocher dans les projets Word
Word 2010 a introduit un nouveau type de contrôle de contenu qui représente une case à cocher. Toutefois, le runtime Visual Studio Tools pour Office ne fournit pas de type CheckBoxContentControl correspondant que vous pouvez utiliser dans les projets Office. Pour créer un contrôle de contenu de case à cocher dans un projet Word 2013 ou Word 2010, utilisez la AddContentControl méthode pour créer un ContentControl objet et transmettez la wdContentControlCheckBox valeur à la méthode pour spécifier un contrôle de contenu de case à cocher. L’exemple de code suivant montre comment procéder.
this.Paragraphs[1].Range.InsertParagraphBefore();
this.Paragraphs[1].Range.Select();
Microsoft.Office.Tools.Word.ContentControl checkBoxControl1 =
this.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox);
checkBoxControl1.Checked = true;
Contenu connexe
- Automatiser Word à l’aide d’objets étendus
- Guide pratique pour ajouter des contrôles de contenu à des documents Word
- Procédure pas à pas : créer un modèle à l’aide de contrôles de contenu
- Données dans les solutions Office
- Lier des données à des contrôles dans les solutions Office
- Limitations programmatiques des éléments hôtes et des contrôles hôtes