Exporter (0) Imprimer
Développer tout

Vue d'ensemble des éléments et des contrôles hôtes

Dans Microsoft Visual Studio 2005 Tools pour Microsoft Office System, les classes Microsoft.Office.Tools.Word.Document et Microsoft.Office.Tools.Excel.Worksheet sont connues en tant qu'éléments hôtes. Ces classes ont des concepteurs qui sont la représentation visuelle de la classe, à l'instar d'un concepteur Windows Forms. Les éléments hôtes peuvent être liés à des données et représentent un conteneur pour les contrôles tels que les contrôles hôtes et les contrôles Windows Forms. Il existe également un élément hôte Microsoft.Office.Tools.Excel.Workbook, mais celui-ci n'agit pas comme un conteneur pour les contrôles hôtes. Le classeur fonctionne comme une barre d'état des composants et vous permet de faire glisser un composant, tel que le DataSet, sur son aire de conception.

Les contrôles hôtes étendent les objets contenus dans les modèles objet Microsoft Office Word 2003 et Microsoft Office Excel 2003 ; en d'autres termes, les contrôles hôtes sont basés sur des objets Office natifs. Les contrôles hôtes qui sont ajoutés aux documents Office se comportent comme les objets Office natifs, comme les plages. Toutefois, les contrôles hôtes ont des fonctionnalités supplémentaires, notamment les événements et les fonctionnalités de liaison de données. Par exemple, lorsque vous souhaitez capturer les événements d'un objet Microsoft.Office.Interop.Excel.Range natif dans Excel, vous devez d'abord intercepter l'événement de modification de la feuille de calcul. Ensuite, vous devez déterminer si la modification a eu lieu dans la Microsoft.Office.Interop.Excel.Range. Avec le contrôle Microsoft.Office.Tools.Excel.NamedRange, vous pouvez accéder directement à l'événement de modification.

La relation entre un élément hôte et les contrôles hôtes est très semblable à la relation entre un Windows Form et les contrôles Windows Forms. De la même manière que vous placez un contrôle de zone de texte sur un Windows Form, vous placez un contrôle Microsoft.Office.Tools.Excel.NamedRange sur un élément hôte Microsoft.Office.Tools.Excel.Worksheet.

En outre, Visual Studio Tools pour Office vous permet d'utiliser les contrôles Windows Forms dans vos solutions Office en les ajoutant directement à la surface de document Word et Excel. Pour plus d'informations, consultez Vue d'ensemble des contrôles Windows Forms dans les documents Office.

RemarqueRemarque

L'ajout des contrôles hôtes ou des contrôles Windows Forms à un sous-document Word n'est pas pris en charge.

Comparaison des éléments hôtes et des contrôles hôtes avec les objets Office natifs

Les éléments hôtes et les contrôles hôtes diffèrent des objets Office natifs sous-jacents. En outre, il existe certaines limitations concernant la programmation d'un élément hôte ou d'un contrôle hôte. Pour plus d'informations, consultez Limitations de programmation des éléments et des contrôles hôtes.

Les éléments hôtes et les contrôles hôtes diffèrent des objets Office natifs sur les points suivants :

  • Les contrôles hôtes ont généralement les mêmes fonctionnalités de base que les objets Office sur lesquels ils sont basés, et offrent en outre des fonctions supplémentaires :

    • modèles d'événement plus riches ;

    • fonctionnalités de liaison de données.

    Dans certains cas, les fonctionnalités de base diffèrent car le contrôle est créé à travers une combinaison de types d'objets différents. Par exemple, consultez Bookmark, contrôle.

  • Les contrôles hôtes sont des classes applicables à Microsoft .NET qui sont créées selon les objets Office natifs.

  • Les contrôles hôtes sont de type Microsoft.Office.Tools.Excel ou Microsoft.Office.Tools.Word, alors que les objets natifs sont de type Microsoft.Office.Interop.Excel ou Microsoft.Office.Interop.Word.

  • Les éléments hôtes ne peuvent pas être créés par programme ; en revanche, la plupart des contrôles hôtes peuvent être ajoutés et supprimés par programme dans vos documents Word et Excel. Pour plus d'informations, consultez Limitations de programmation des éléments et des contrôles hôtes.

Ajout des contrôles hôtes à vos documents

Pour ajouter des contrôles hôtes à vos documents Word 2003 ou vos feuilles de calcul Excel 2003, vous avez quatre possibilités :

Attribution de noms aux contrôles hôtes

Si vous faites glisser un contrôle hôte de la Boîte à outils vers votre document, le contrôle sera automatiquement nommé en utilisant le type de contrôle et en ajoutant un nombre incrémentiel à la fin. Par exemple, Bookmark1, Bookmark2, etc. Si vous utilisez les fonctionnalités natives de Word ou Excel pour ajouter le contrôle, vous pouvez lui attribuer un nom spécifique au moment de sa création. Vous pouvez également renommer vos contrôles à l'aide de la propriété Name dans la fenêtre Propriétés.

RemarqueRemarque

Vous ne pouvez pas utiliser de mots réservés pour nommer des contrôles hôtes. Par exemple, si vous ajoutez un contrôle NamedRange à une feuille de calcul et remplacez son nom par Système, des erreurs se produisent lorsque vous créez le projet.

Suppression de contrôles hôtes

Dans la plupart des cas, vous pouvez supprimer des contrôles hôtes au moment du design en sélectionnant le contrôle dans la feuille de calcul Excel ou le document Word et en appuyant sur la touche SUPPR. Toutefois, vous devez utiliser la boîte de dialogue Définir un nom dans Excel pour supprimer les contrôles NamedRange. Pour plus d'informations, consultez Comment : supprimer des contrôles NamedRange au moment du design.

Si vous ajoutez un contrôle hôte à un document au moment du design, vous ne devez pas le supprimer par programme au moment de l'exécution, car sinon une exception sera levée la prochaine fois que vous essaierez d'utiliser le contrôle dans le code. La méthode Delete d'un contrôle hôte supprime uniquement les contrôles hôtes qui sont ajoutés au document au moment de l'exécution. Si vous appelez la méthode Delete d'un contrôle hôte qui a été créé au moment du design, une exception est levée. Par exemple, Bookmark1.Delete supprime Bookmark1 uniquement s'il a été ajouté par programme au document. Les contrôles hôtes créés dynamiquement peuvent également être supprimés en passant le nom de contrôle à la méthode Remove de la ControlsCollection. Pour plus d'informations, consultez Ajout de contrôles à des documents Office au moment de l'exécution.

Si les utilisateurs finaux suppriment un contrôle hôte du document, tel qu'un signet, au moment de l'exécution, la solution peut échouer de manière inattendue. Vous pouvez utiliser les fonctionnalités de protection de document dans Word et Excel pour empêcher la suppression des contrôles hôtes. Pour plus d'informations, consultez Techniques de protection des documents Word, exemple et Techniques de protection des documents Excel, exemple.

RemarqueRemarque

Ne supprimez pas les contrôles par programme lorsque le gestionnaire d'événements Shutdown du document est actif. Les éléments d'interface du document ne sont plus disponibles lorsque l'événement Shutdown se produit. Pour supprimer les contrôles avant la fermeture de l'application, ajoutez votre code à un autre gestionnaire d'événements tel que BeforeClose ou BeforeSave.

Éléments hôtes et contrôles hôtes disponibles

Voici la liste des éléments hôtes et des contrôles hôtes qui sont disponibles dans les projets Excel et Word.

Éléments hôtes Excel

Éléments hôtes Word

Contrôles hôtes Excel

Contrôles hôtes Word

Programmation d'événements de contrôle hôte

Pour étendre les objets Office, les contrôles hôtes peuvent, entre autres, ajouter des événements. Par exemple, l'objet Microsoft.Office.Interop.Excel.Range dans Excel et l'objet Microsoft.Office.Interop.Word.Bookmark dans Word n'ont pas d'événements, mais Visual Studio Tools pour Office étend ces objets en leur ajoutant des événements programmables. Vous pouvez accéder à ces événements et les coder de la même manière que vous accédez aux événements des contrôles sur les Windows Forms : à l'aide de la liste déroulante d'événements dans Visual Basic et de la page de propriétés d'événement en C#. Pour plus d'informations, consultez Procédure pas à pas : programmation d'événements d'un contrôle NamedRange.

RemarqueRemarque

Vous ne devez pas attribuer la valeur false à la propriété EnableEvents de l'objet Application dans Excel. Si cette propriété a la valeur false, Excel ne peut pas déclencher d'événements, y compris les événements de contrôles hôtes.

Liaison de données aux contrôles hôtes

Les contrôles hôtes étendent également les objets Office en activant la liaison de données. Les contrôles hôtes ont les mêmes fonctionnalités de liaison de données que les contrôles sur les Windows Forms. Vous pouvez lier des contrôles hôtes aux sources de données telles que les groupes de données et les tables de données. Les contrôles hôtes activent la liaison de données simple ou complexe. Pour plus d'informations, consultez Procédure pas à pas : liaison d'une cellule de feuille de calcul à un champ de base de données et Procédure pas à pas : liaison de cellules à plusieurs colonnes dans une table.

Liaison de données simple

La liaison de données simple s'applique lorsqu'une propriété de contrôle est liée à un seul élément de données, tel qu'une valeur dans une table de données. Par exemple, le contrôle NamedRange possède une propriété Value2 qui peut être liée à un champ dans un groupe de données. Lorsque le champ dans le groupe de données change, la valeur dans la plage nommée change également. Tous les contrôles hôtes, à l'exception de Microsoft.Office.Tools.Word.XMLNodes, prennent en charge la liaison de données simple. Le contrôle XMLNodes est une collection ; par conséquent, il ne prend pas en charge la liaison de données.

Liaison de données complexe

La liaison de données complexe s'applique lorsqu'une propriété de contrôle est liée à plusieurs éléments de données, tels que plusieurs colonnes dans une table de données. Par exemple, le contrôle Microsoft.Office.Tools.Excel.ListObject possède une propriété DataSource qui peut être liée à plusieurs colonnes dans une table de données. Toutes les données contenues dans la table de données s'affichent dans le contrôle Microsoft.Office.Tools.Excel.ListObject, et à mesure que les données dans la table de données changent, Microsoft.Office.Tools.Excel.ListObject change également. La liaison de données complexe est uniquement prise en charge sur le contrôle Microsoft.Office.Tools.Excel.ListObject.

Voir aussi

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft