Partager via


Limitations des contrôles Windows Forms dans les documents Office

Mise à jour : Juillet 2008

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés.

Projets au niveau du document

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

Projets au niveau de l'application

  • Excel 2007

  • Word 2007

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Il existe des différences entre les contrôles Windows Forms qui sont ajoutés aux documents Microsoft Office Word ou aux classeurs Microsoft Office Excel et les contrôles Windows Forms qui sont ajoutés à Windows Forms. Par exemple, lorsque vous ajoutez un contrôle Button Windows Forms à un document Word, les propriétés telles que Dock, Anchor et TabIndex ne se comportent pas comme prévu.

Ces différences sont pour beaucoup dues à la façon dont les contrôles Windows Forms sont hébergés sur les documents. Lorsqu'un contrôle de Windows Forms est ajouté à un document, Visual Studio Tools pour Office incorpore un contrôle ActiveX qui héberge ensuite le contrôle Windows Forms dans le document. Le contrôle Windows Forms n'est pas incorporé directement dans le document.

Limitations des méthodes et des propriétés des contrôles Windows Forms

Il existe de nombreuses méthodes et propriétés de contrôles Windows Forms qui ne fonctionnent pas de la même façon sur un document que sur un Windows Form ; il est donc recommandé de ne pas les utiliser. Par exemple, la définition de propriétés telles que Dock et Anchor affecte uniquement la position du contrôle Windows Forms par rapport au contrôle ActiveX conteneur, plutôt que le document. Voici la liste des méthodes et propriétés de contrôles Windows Forms non prises en charge pour Word et Excel :

  • Méthodes et propriétés de contrôles Excel non prises en charge :

    • Anchor

    • Dock

    • Location

    • TabIndex

    • TabStop

    • TopLevelControl

  • Méthodes et propriétés de contrôles Word non prises en charge :

    • Hide

    • Show

    • Anchor

    • Dock

    • Location

    • TabIndex

    • TabStop

    • TopLevelControl

    • Visible

Vous ne pouvez pas non plus définir la propriété Left ou Top des contrôles Windows Forms qui sont alignés sur le texte dans un document Word. Les contrôles Windows Forms sont ajoutés et alignés sur le texte dans les cas suivants :

Différences dans les contrôles Windows Forms de documents Office

Les contrôles Windows Forms adoptent généralement le même comportement sur un document Office que sur un Windows Form, mais il existe certaines différences. Le tableau suivant décrit les différences qui existent pour les contrôles Windows Forms dans des documents Office :

Fonctionnalité

Différence

Ordre des contrôles

Vous ne pouvez pas vous déplacer par tabulation entre les contrôles placés dans une feuille de calcul Excel ou un document Word.

Regroupement de contrôles

Vous ne pouvez pas utiliser un contrôle GroupBox pour contenir d'autres contrôles sur un document Office. Lorsque vous ajoutez plusieurs cases d'option directement au document, les cases d'option ne s'excluent pas mutuellement. Vous pouvez écrire du code pour que les cases d'option s'excluent mutuellement ; toutefois, l'approche par défaut consiste à ajouter les cases d'option à un contrôle utilisateur et à ajouter ensuite le contrôle utilisateur au document. Pour plus d'informations, consultez Contrôles Word, exemple ou Contrôles Excel, exemple.

Type de contrôle

Les contrôles Windows Forms utilisés sur les documents sont encapsulés dans une classe fournie par Visual Studio Tools pour Office, qui donne aux contrôles les fonctionnalités supplémentaires spécifiques à la feuille de calcul Excel ou au document Word. Par exemple, si vous avez un contrôle Button sur une feuille de calcul Excel, veillez à spécifier le type Microsoft.Office.Tools.Excel.Controls.Button plutôt que System.Windows.Forms.Button lorsque vous référencez ou caster l'objet.

Position et taille du contrôle

La taille et la position du contrôle sont déterminées par les propriétés qui font partie du contrôle ActiveX conteneur. Les propriétés du contrôle ActiveX prennent des valeurs différentes de celles des propriétés équivalentes d'un contrôle Windows Forms. Lorsque vous définissez les propriétés Top, Left, Height ou Width d'un contrôle, celles-ci sont mesurées en points plutôt qu'en pixels.

Position des contrôles sur les documents Word

Si vous ajoutez des contrôles à une présentation basée sur un flux, n'oubliez pas que leur position varie en fonction des modifications apportées au contenu. Vous ne pouvez pas ancrer un contrôle à un paragraphe lorsque vous l'ajoutez en le faisant glisser à partir de la Boîte à outils car il est aligné sur le texte du document Word. Si vous utilisez une autre méthode pour ajouter le contrôle, en double-cliquant par exemple sur le contrôle, le contrôle est inséré en fonction de l'option Word que vous avez définie pour insérer des images.

Vous ne pouvez pas définir la propriété Left ou Top d'un contrôle Word qui est inline avec le texte.

Vous ne pouvez pas placer de contrôles dans un en-tête ou pied de page, ou dans un sous-document.

Événements de contrôle

Lorsque le contrôle est sélectionné, il déclenche des événements dans l'ordre suivant :

  1. Enter

  2. GotFocus

Lorsque le contrôle est désélectionné, il déclenche des événements dans l'ordre suivant :

  1. Leave

  2. Validating

  3. Validated

  4. LostFocus

Mise à l'échelle de contrôle

Lorsque vous attribuez une valeur différente de 100 % au paramètre de zoom d'un document, les contrôles sont désactivés même si leur taille semble s'ajuster en fonction du document. Par exemple, si vous cliquez sur un bouton lorsque le zoom de votre document est de 130 %, un message indique que le contrôle est désactivé jusqu'à ce que le zoom ait la valeur 100 %. Les contrôles fonctionnent correctement lorsque vous attribuez au zoom la valeur 100 %.

Valeurs de propriété de contrôle

Bien qu'une valeur entière soit affectée aux propriétés de contrôles sur un Windows Form, une valeur unique leur est affectée pour les contrôles sur un document Word. Dans Excel, une valeur double est affectée aux valeurs de propriété de contrôle. Si les propriétés Height et Width d'un contrôle sur une feuille de calcul dépassent la taille de la feuille de calcul ou de l'écran, la valeur est tronquée.

Redimensionnement des contrôles

Si vous redimensionnez un contrôle sur le document à l'aide de l'une des huit poignées de redimensionnement, les nouvelles dimensions du contrôle ne sont pas répercutées dans la fenêtre Propriétés tant que le contrôle n'est pas de nouveau activé.

Comportement des contrôles

Les contrôles sur une feuille de calcul Excel peuvent se comporter de façon imprévisible lorsque la fenêtre de la feuille de calcul est fractionnée. Par exemple, l'accès à une TextBox sur la feuille de calcul peut être disponible uniquement dans l'une des fenêtres.

Attribution des noms des contrôles

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

Ajout de contrôles par programme

N'utilisez pas le constructeur du contrôle pour ajouter un contrôle à votre document au moment de l'exécution. À la place, utilisez les méthodes d'assistance fournies par Visual Studio Tools pour Office. Par exemple, utilisez la méthode AddButton pour ajouter un bouton à une feuille de calcul. Si vous souhaitez ajouter un contrôle qui n'est pas pris en charge par ces méthodes d'assistance, vous pouvez utiliser la méthode AddControl. Pour plus d'informations, consultez Ajout de contrôles à des documents Office au moment de l'exécution.

Copie des contrôles

Si vous copiez un contrôle Windows Forms et que vous le collez dans un document au moment de l'exécution, un contrôle ActiveX conteneur vide est collé dans le document. Le contrôle Windows Forms n'apparaît pas au nouvel emplacement et le code-behind du contrôle d'origine n'est pas copié vers le contrôle ActiveX conteneur.

Limitations dans les projets au niveau du document

Certaines limitations relatives à l'utilisation de contrôles Windows Forms sur les documents sont spécifiques aux projets au niveau du document.

Prise en charge des contrôles au moment du design

Certains contrôles Windows Forms sont supprimés de la Boîte à outils lorsqu'une feuille de calcul Excel ou un document Word est ouvert dans le concepteur Visual Studio. Cela est dû à des limitations techniques ou au fait que les fonctionnalités sont déjà disponibles dans Word ou Excel. Visual Studio Tools pour Office prend en charge tous les contrôles Windows Forms et autres composants qui apparaissent dans la Boîte à outils lorsque le document a le focus et permet également l'ajout de contrôles tiers à votre document.

Remarque :

Tous les contrôles sont supprimés de la Boîte à outils lorsqu'un document est protégé. Pour plus d'informations sur la protection de document, consultez Protection des documents dans les solutions au niveau du document.

Remarque :

Pour être utilisés dans une solution Visual Studio Tools pour Office, l'attribut ComVisibleAttribute des contrôles tiers doit être défini à true.

Les contrôles et les composants suivants ne sont pas disponibles dans la Boîte à outils :

Prise en charge pour les contrôles ActiveX hérités (legacy)

Si vous créez un projet Visual Studio Tools pour Office à l'aide d'un document Word ou d'un classeur Excel existant qui contient des contrôles ActiveX, les fonctionnalités des contrôles ActiveX ne sont pas perdues ; toutefois, l'ajout de nouveaux contrôles ActiveX à vos documents à partir de Visual Studio Tools pour Office n'est pas pris en charge. Par exemple, si dans votre document Word, un bouton provenant de la boîte à outils Contrôles exécute une macro Visual Basic for Applications (VBA), il continuera à exécuter la macro après utilisation du document dans un projet Visual Studio Tools pour Office. Toutefois, il est recommandé de supprimer les contrôles ActiveX et les macros VBA, et de les remplacer par des contrôles Windows Forms et du code managé.

Voir aussi

Tâches

Comment : ajouter des contrôles Windows Forms à des documents Office

Concepts

Vue d'ensemble des contrôles Windows Forms dans les documents Office

Ajout de contrôles à des documents Office au moment de l'exécution

Autres ressources

Contrôles sur des documents Office

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'informations afin de faire la distinction entre les limitations d'ordre général et les limitations spécifiques aux personnalisations au niveau du document.

Modifications de fonctionnalités dans le SP1.