Limitations des contrôles Windows Forms sur des documents OfficeLimitations of Windows Forms controls on Office documents

Il existe certaines différences entre les contrôles Windows Forms qui sont ajoutés aux documents Microsoft Office Word ou des feuilles de calcul Microsoft Office Excel et les contrôles Windows Forms qui sont ajoutés aux Windows Forms.There are some differences between Windows Forms controls that are added to Microsoft Office Word documents or Microsoft Office Excel worksheets, and Windows Forms controls that are added to Windows Forms. Par exemple, lorsque vous ajoutez un Button à un document, les propriétés de contrôle telles que Dock, Anchor, et TabIndex ne se comportent pas comme prévu.For example, when you add a Button control to a document, properties such as Dock, Anchor, and TabIndex do not behave as you might expect.

La façon dont la plupart de ces différences sont dus que Windows Forms contrôles sont hébergés sur des documents.Many of these differences are caused by the way that Windows Forms controls are hosted on documents. Lorsqu’un contrôle Windows Forms est ajouté à un document, le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime incorpore un contrôle ActiveX qui héberge le contrôle Windows Forms dans le document.When a Windows Forms control is added to a document, the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime embeds an ActiveX control that then hosts the Windows Forms control in the document. Le contrôle Windows Forms n’est pas incorporé directement dans le document.The Windows Forms control is not embedded directly in the document.

S’applique à : les informations contenues dans cette rubrique s’applique au document-projets et ajouter de VSTO de niveau-dans les projets Word et Excel.Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Excel and Word. Pour plus d’informations, consultez fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features available by Office application and project type.

Limitations des méthodes et propriétés des contrôles Windows FormsLimitations of methods and properties of Windows Forms controls

Il existe un certain nombre de méthodes et propriétés des contrôles Windows Forms qui ne fonctionnent pas de la même façon sur un document comme ils le feraient sur un Windows Form et, par conséquent, il est recommandé qu’ils ne pas être utilisés.There are a number of methods and properties of Windows Forms controls that do not work the same way on a document as they would on a Windows Form and, therefore, it is recommended that they not be used. Par exemple, définition des propriétés telles que Dock et Anchor affecte uniquement la position du contrôle en ce qui concerne le contrôle ActiveX conteneur, plutôt que le document.For example, setting properties such as Dock and Anchor only affects the position of the control with respect to the container ActiveX control, rather than the document. Voici une liste des méthodes non prises en charge et les propriétés des contrôles Windows Forms pour Word et Excel :The following is a list of unsupported methods and properties of Windows Forms controls for Word and Excel:

Vous ne pouvez pas définir le Left ou Top propriété des contrôles Windows Forms qui sont alignés avec le texte dans un document Word.You also cannot set the Left or Top property of Windows Forms controls that are in line with text on a Word document. Contrôles Windows Forms sont ajoutés alignés avec le texte dans les cas suivants :Windows Forms controls are added in line with text in the following cases:

  • Par programme, vous ajoutez un contrôle à un document Word et que vous utilisez une méthode qui spécifie une plage pour l’emplacement.You programmatically add a control to a Word document and use a method that specifies a range for the location.

  • Vous ajoutez un contrôle Windows Forms à un document Word au moment du design.You add a Windows Forms control to a Word document at design time. Vous pouvez le modifier en modifiant le contrôle dans le concepteur.You can change this by modifying the control in the designer.

Différences dans les contrôles Windows Forms sur des documents OfficeDifferences in Windows Forms controls on Office documents

Contrôles Windows Forms ont généralement le même comportement sur un document Office sur un Windows Form, mais il existe certaines différences.Windows Forms controls generally have the same behavior on an Office document as they do on a Windows Form, but some differences do exist. Le tableau suivant décrit les différences qui existent pour les contrôles Windows Forms sur des documents Office.The following table describes the differences that exist for Windows Forms controls on Office documents.

FonctionnalitéFunctionality DifférenceDifference
Contrôle l’ordre de tabulationControl tab order Vous ne pouvez pas onglet via les contrôles placés sur une feuille de calcul Excel ou un document Word.You cannot tab through controls placed on an Excel worksheet or Word document.
Regroupement de contrôleControl grouping Vous ne pouvez pas utiliser un GroupBox contrôle pour contenir d’autres contrôles sur un document Office.You cannot use a GroupBox control to contain other controls on an Office document. Lorsque vous ajoutez plusieurs boutons de case d’option directement au document, les cases d’option ne sont pas mutuellement exclusives.When you add multiple radio buttons directly to the document, the radio buttons are not mutually exclusive. Vous pouvez écrire du code pour rendre les cases d’option mutuellement exclusives ; Toutefois, la meilleure approche consiste à ajouter des boutons radio à un contrôle utilisateur et de puis ajoutez le contrôle utilisateur au document.You can write code to make the radio buttons mutually exclusive; however, the preferred approach is to add the radio buttons to a user control and then add the user control to the document. Pour plus d’informations, consultez les exemples de contrôles Word et Excel dans exemples de développement Office et des procédures pas à pas.For more information, see the Word Controls Sample or Excel Controls Sample at Office development samples and walkthroughs.
Type de contrôleControl type Contrôles Windows Forms utilisés sur les documents sont encapsulés dans une classe fournie par le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime offrant les contrôles des fonctionnalités supplémentaires spécifiques à la feuille de calcul Excel ou un document Word.Windows Forms controls used on documents are wrapped in a class provided by the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime that gives the controls additional functionality specific to the Excel worksheet or Word document. Par exemple, si vous avez un bouton control sur une feuille de calcul Excel, veillez à spécifier le type en tant que Button plutôt que Button lorsque vous référencez ou effectuer un cast de l’objet.For example, if you have a Button control on an Excel worksheet, be sure to specify the type as Button rather than Button when referencing or casting the object.
Position du contrôle et la tailleControl position and size La taille et la position du contrôle est déterminée par les propriétés qui font partie du conteneur de contrôle ActiveX.The size and position of the control is determined by properties that are part of the container ActiveX control. 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.The ActiveX control properties take different values than the equivalent properties of a Windows Forms control. Lorsque vous définissez la Top, Left, Height, ou Width propriétés d’un contrôle, elle est mesurée en points, plutôt que de pixels.When you set the Top, Left, Height, or Width properties of a control, it is measured in points, rather than pixels.
Position du contrôle dans les documents WordControl position on Word documents Si vous ajoutez des contrôles à une disposition basée sur un flux, gardez à l’esprit que les contrôles avec le contenu en tant que les modifications de contenu.If you add controls to a flow-based layout, keep in mind that the controls will flow with the content as the content changes. Vous ne pouvez pas ancrer le contrôle à un paragraphe lorsque vous faites glisser à partir du boîte à outils parce que le contrôle est ajouté au document Word alignés avec le texte.You cannot anchor the control to a paragraph when you drag it from the Toolbox because the control is added to the Word document in line with text. 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.If you use another method to add the control, such as double-clicking the control, the control is inserted according to the Word option you have set for inserting pictures.

Vous ne pouvez pas définir le Left ou Top propriété d’un contrôle qui est inclus avec le texte.You cannot set the Left or Top property of a control that is inline with text.

Vous ne pouvez pas placer des contrôles dans un en-tête ou un pied de page, ou dans un sous-document.You cannot place controls in a header or footer, or within a subdocument.
Événements de contrôleControl events Lorsque le contrôle est sélectionné, il déclenche des événements dans l’ordre suivant :When the control is selected, it raises events in the following order:

1. Enter1. Enter
2. GotFocus2. GotFocus

Lorsque le contrôle est désélectionné, il déclenche des événements dans l’ordre suivant :When the control is deselected, it raises events in the following order:

1. Leave1. Leave
2. Validating2. Validating
3. Validated3. Validated
4. LostFocus4. LostFocus
Mise à l’échelle du contrôleControl scaling Lorsque vous modifiez le paramètre du zoom d’un document à une autre que 100 %, les contrôles sont désactivés, même si elles apparaissent à l’échelle avec le document.When you change the zoom setting of a document to anything other than 100%, controls are disabled, although they appear to scale with the document. Par exemple, si vous cliquez sur un bouton lorsque votre document est de 130 % zoom, il affiche un message que le contrôle a été désactivé jusqu'à ce que le zoom est défini sur 100 %.For example, if you click a button when your document is at 130% zoom, it will show a message that the control has been disabled until zoom is set to 100%. Les contrôles ne fonctionnent pas correctement lorsque vous modifiez le zoom à 100 %.The controls will function correctly when you change the zoom to 100%.
Valeurs de propriété de contrôleControl property values Bien que les propriétés des contrôles sur un Windows Form sont définies sur une valeur entière, elles sont définies sur une seule pour les contrôles sur un document Word.Although the properties of controls on a Windows Form are set to an integer value, they are set to a single for controls on a Word document. Dans Excel, les valeurs de propriété des contrôles sont définies en double.In Excel, the property values of controls are set to a double. Si le Height et Width propriété d’un contrôle sur une feuille de calcul dépasse la taille de la feuille de calcul ou d’un écran, la valeur est tronquée.If the Height and Width property of a control on a worksheet exceeds the size of the worksheet or screen, the value is truncated.
Redimensionnement du contrôleControl resizing Si vous redimensionnez un contrôle sur le document à l’aide d’une des huit poignées de redimensionnement, les nouvelles dimensions du contrôle ne sont pas répercutées dans le propriétés fenêtre jusqu'à ce que le contrôle est de nouveau activé.If you resize a control on the document using one of the eight sizing handles, the new control dimensions are not reflected in the Properties window until the control is reselected.
Contrôler le comportementControl behavior Contrôles sur une feuille de calcul Excel peuvent se comporter de façon imprévisible lorsque la fenêtre de feuille de calcul est fractionnée.Controls on an Excel worksheet might behave unpredictably when the worksheet window is split. Par exemple, l’accès à un TextBox sur la feuille de calcul peut être disponible uniquement dans une des fenêtres.For example, access to a TextBox on the worksheet might only be available in one of the windows.
Contrôle d’affectation de nomsControl naming Vous ne pouvez pas utiliser les mots réservés pour nommer des contrôles.You cannot use reserved words to name controls. Par exemple, si vous ajoutez un Button à une feuille de calcul et remplacez le nom par système, erreurs se produisent lorsque vous générez le projet.For example, if you add a Button to a worksheet and change the name to System, errors occur when you build the project.
Ajouter des contrôles par programmationProgrammatically adding controls N’utilisez pas le constructeur du contrôle pour ajouter un contrôle à votre document au moment de l’exécution.Do not use the control's constructor to add a control to your document at runtime. Au lieu de cela, utilisez les méthodes d’assistance fournies par le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime.Instead, use the helper methods provided by the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime. Par exemple, utiliser le AddButton méthode pour ajouter un bouton à une feuille de calcul.For example, use the AddButton method to add a button to a worksheet. 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).If you want to add a control that is not supported by these helper methods, you can use the AddControl method. Pour plus d’informations, consultez ajouter des contrôles aux documents Office au moment de l’exécution.For more information, see Add controls to Office documents at runtime.
Copie des contrôlesCopying controls Si vous copiez un contrôle Windows Forms et collez dans un document au moment de l’exécution, un contrôle ActiveX conteneur vide est collé dans le document.If you copy a Windows Forms control and paste it into a document at runtime, an empty container ActiveX control is pasted into the document. Le contrôle Windows Forms n’apparaît pas dans le nouvel emplacement et code-behind du contrôle d’origine n’est pas copié dans le conteneur de contrôle ActiveX.The Windows Forms control does not appear in the new location, and code behind the original control is not copied to the container ActiveX control.

Limitations dans les projets au niveau du documentLimitations in document-level projects

Certaines limitations de l’utilisation de contrôles Windows Forms sur les documents sont uniques aux projets au niveau du document.Some limitations of using Windows Forms controls on documents are unique to document-level projects.

Prise en charge du contrôle au moment du designControl support at design time

Certains contrôles Windows Forms sont supprimés de la boîte à outils quand une feuille de calcul Excel ou un document Word est ouvert dans le concepteur Visual Studio.Certain Windows Forms controls are removed from the Toolbox when an Excel worksheet or Word document is open in the Visual Studio designer. Cela est dû à des limitations techniques ou parce que les fonctionnalités sont déjà disponibles dans Word ou Excel.This is because of technical limitations or because the functionality is already available within Word or Excel. Les projets Excel et Word prennent en charge tous les contrôles Windows Forms et d’autres composants qui s’affichent dans le boîte à outils lorsque le document a le focus et que vous pouvez également ajouter des contrôles tiers à un document ou une feuille de calcul.Excel and Word projects support all of the Windows Forms controls and other components that appear in the Toolbox when the document has focus, and you can also add third-party controls to a worksheet or document.

Note

Tous les contrôles sont supprimés de la boîte à outils quand un document est protégé.All controls are removed from the Toolbox when a document is protected. Pour plus d’informations sur la protection de document, consultez protection dans les solutions au niveau du document des documents.For information about document protection, see Document protection in document-level solutions.

Note

Les contrôles tiers doivent avoir le ComVisibleAttribute attribut la valeur true pour pouvoir être utilisé dans une solution Office.Third-party controls must have the ComVisibleAttribute attribute set to true in order to be used in an Office solution.

Les contrôles et les composants suivants ne sont pas disponibles dans le boîte à outils:The following controls and components are not available in the Toolbox:

Prise en charge pour les contrôles ActiveX héritésSupport for legacy ActiveX controls

Si vous créez un projet Office 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 pour l’ajout de nouveaux contrôles ActiveX à vos documents à partir de Visual Studio.If you create a document-level Office project that uses an existing Word document or Excel workbook that contains ActiveX controls, the functionality of the ActiveX controls is not lost; however, there is no support for adding new ActiveX controls to your documents from within Visual Studio. Par exemple, si votre document Word inclut un bouton de la contrôle boîte à outils qui exécute une macro Visual Basic pour Applications (VBA), il continue de s’exécuter la macro une fois que le document a été utilisé dans un projet Office.For example, if your Word document has a button from the Control toolbox that runs a Visual Basic for Applications (VBA) macro, it will continue to run the macro after the document has been used in an Office project. 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 de code managé.However, it is recommended that you remove ActiveX controls and VBA macros and replace them with Windows Forms controls and managed code.

Voir aussiSee also