Limitations des contrôles Windows Forms sur les documents Bureau
Il existe des différences entre les contrôles Windows Forms ajoutés à Microsoft Bureau documents Word ou microsoft Bureau feuilles de calcul Excel et les contrôles Windows Forms ajoutés à Windows Forms. Par exemple, lorsque vous ajoutez un Button contrôle à un document, des propriétés telles que Dock, Anchoret TabIndex que vous ne vous comportez pas comme prévu.
La plupart de ces différences sont causées par la façon dont les contrôles Windows Forms sont hébergés sur des documents. Lorsqu’un contrôle Windows Forms est ajouté à un document, le runtime 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.
S’applique à : les informations contenues dans cette rubrique s’appliquent aux projets de niveau document et aux projets de complément VSTO pour Excel et Word. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.
Il existe un certain nombre de méthodes et de propriétés des contrôles Windows Forms qui ne fonctionnent pas de la même façon sur un document que sur un Windows Form et, par conséquent, il est recommandé de ne pas les utiliser. Par exemple, la définition de propriétés telles que Dock et Anchor n’affecte que la position du contrôle par rapport au contrôle ActiveX du conteneur, plutôt que le document. Voici une liste des méthodes et propriétés non prises en charge des contrôles Windows Forms pour Word et Excel :
Propriétés non prises en charge des contrôles Excel :
Méthodes et propriétés non prises en charge des contrôles Word :
Vous ne pouvez pas également définir la ou Top la Left propriété des contrôles Windows Forms qui sont en ligne avec du texte sur un document Word. Les contrôles Windows Forms sont ajoutés en ligne avec du texte dans les cas suivants :
Vous ajoutez par programme un contrôle à un document Word et utilisez une méthode qui spécifie une plage pour l’emplacement.
Vous ajoutez un contrôle Windows Forms à un document Word au moment du design. Vous pouvez le modifier en modifiant le contrôle dans le concepteur.
Les contrôles Windows Forms ont généralement le même comportement sur un document Bureau que sur un Windows Form, mais certaines différences existent. Le tableau suivant décrit les différences qui existent pour les contrôles Windows Forms sur Bureau documents.
Fonctionnalités | Différence |
---|---|
Ordre de tabulation du contrôle | Vous ne pouvez pas parcourir les contrôles placés sur une feuille de calcul Excel ou un document Word. |
Regroupement de contrôles | Vous ne pouvez pas utiliser un GroupBox contrôle pour contenir d’autres contrôles sur un document Bureau. 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 recommandée consiste à ajouter les cases d’option à un contrôle utilisateur, puis à ajouter le contrôle utilisateur au document. Pour plus d’informations, consultez l’exemple de contrôles Word ou l’exemple de contrôles Excel dans Bureau exemples de développement et procédures pas à pas. |
Type de contrôle | Les contrôles Windows Forms utilisés sur les documents sont encapsulés dans une classe fournie par le runtime Visual Studio Tools pour Office qui fournit aux contrôles des 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 comme Button plutôt que Button lors du référencement ou de la conversion de 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 du conteneur. Les propriétés du contrôle ActiveX prennent des valeurs différentes des propriétés équivalentes d’un contrôle Windows Forms. Lorsque vous définissez les Top propriétés , ou Width Left Height les propriétés d’un contrôle, elles sont mesurées en points, plutôt que en pixels. |
Position de contrôle sur les documents Word | Si vous ajoutez des contrôles à une disposition basée sur un flux, gardez à l’esprit que les contrôles circuleront avec le contenu à mesure que le contenu change. Vous ne pouvez pas ancrer le contrôle dans un paragraphe lorsque vous le faites glisser à partir de la boîte à outils , car le contrôle est ajouté au document Word en ligne avec du texte. Si vous utilisez une autre méthode pour ajouter le contrôle, par exemple en double-cliquant sur le contrôle, le contrôle est inséré en fonction de l’option Word que vous avez définie pour l’insertion d’images. Vous ne pouvez pas définir la ou Top la Left propriété d’un contrôle inline avec du texte.Vous ne pouvez pas placer de contrôles dans un en-tête ou un 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 |
Contrôle de la mise à l’échelle | Lorsque vous remplacez le paramètre de zoom d’un document par quelque chose d’autre que 100 %, les contrôles sont désactivés, même s’ils semblent être mis à l’échelle avec le document. Par exemple, si vous cliquez sur un bouton lorsque votre document est à 130 % de zoom, il affiche un message indiquant que le contrôle a été désactivé jusqu’à ce que le zoom soit défini sur 100 %. Les contrôles fonctionnent correctement lorsque vous modifiez le zoom sur 100 %. |
Valeurs des propriétés de contrôle | Bien que les propriétés des contrôles d’un Windows Form soient définies sur une valeur entière, elles sont définies sur une valeur unique pour les contrôles d’un document Word. Dans Excel, les valeurs de propriété des contrôles sont définies sur un double. Si la propriété et Width la Height propriété 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 du contrôle | Si vous redimensionnez un contrôle sur le document à l’aide de l’une des huit poignées de dimensionnement, les nouvelles dimensions de contrôle ne sont pas reflétées dans la fenêtre Propriétés tant que le contrôle n’est pas réélectionné. |
Comportement de contrôle | Les contrôles d’une feuille de calcul Excel peuvent se comporter de manière imprévisible lorsque la fenêtre de feuille de calcul est fractionnée. Par exemple, l’accès à une TextBox feuille de calcul peut uniquement être disponible dans l’une des fenêtres. |
Nommage 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 que vous remplacez le nom par System, des erreurs se produisent lorsque vous générez le projet. |
Ajout de contrôles par programmation | N’utilisez pas le constructeur du contrôle pour ajouter un contrôle à votre document au moment de l’exécution. Utilisez plutôt les méthodes d’assistance fournies par le runtime Visual Studio Tools pour Office. Par exemple, utilisez la AddButton méthode 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 AddControl méthode. Pour plus d’informations, consultez Ajouter des contrôles à Bureau documents au moment de l’exécution. |
Copier des contrôles | Si vous copiez un contrôle Windows Forms et collez-le dans un document au moment de l’exécution, un contrôle ActiveX de conteneur vide est collé dans le document. Le contrôle Windows Forms n’apparaît pas dans le nouvel emplacement et le code derrière le contrôle d’origine n’est pas copié dans le contrôle ActiveX du conteneur. |
Certaines limitations de l’utilisation de contrôles Windows Forms sur des documents sont uniques aux projets au niveau du document.
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 parce que la fonctionnalité est déjà disponible dans Word ou Excel. Les projets Excel et Word prennent en charge tous les contrôles Windows Forms et d’autres composants qui apparaissent dans la boîte à outils lorsque le document a le focus, et vous pouvez également ajouter des contrôles tiers à une feuille de calcul ou à un document.
Notes
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 des documents, consultez Protection des documents dans les solutions au niveau du document.
Notes
Les contrôles tiers doivent avoir l’attribut ComVisibleAttribute défini sur true pour être utilisés dans une solution Bureau.
Les contrôles et composants suivants ne sont pas disponibles dans la boîte à outils :
Si vous créez un projet de Bureau au niveau du document qui utilise un document Word existant ou un classeur Excel qui contient des contrôles ActiveX, les fonctionnalités des contrôles ActiveX ne sont pas perdues. Toutefois, il n’existe aucune prise en charge de l’ajout de nouveaux contrôles ActiveX à vos documents à partir de Visual Studio. Par exemple, si votre document Word a un bouton de la boîte à outils Contrôle qui exécute une macro Visual Basic pour Applications (VBA), il continue d’exécuter la macro une fois que le document a été utilisé dans un projet Bureau. 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é.