Vue d'ensemble des contrôles Windows Forms dans les documents OfficeWindows Forms Controls on Office Documents Overview

Les contrôles Windows Forms sont des objets avec lesquels les utilisateurs peuvent interagir pour entrer ou manipuler des données.Windows Forms controls are objects that users can interact with to enter or manipulate data. Dans des projets au niveau du document pour Microsoft Office Excel et Microsoft Office Word, vous pouvez ajouter des contrôles Windows Forms au document ou au classeur dans votre projet au moment du design, ou vous pouvez ajouter ces contrôles par programmation au moment de l’exécution.In document-level projects for Microsoft Office Excel and Microsoft Office Word, you can add Windows Forms controls to the document or workbook in your project at design time, or you can programmatically add these controls at run time. Vous pouvez ajouter ces contrôles par programmation à tout document ou feuille de calcul ouvert(e) au moment de l’exécution dans un complément VSTO pour Excel ou Word.You can programmatically add these controls to any open document or worksheet at run time in an VSTO Add-in for Excel or Word.

Pour plus d'informations, consultez Comment : ajouter des contrôles Windows Forms à des documents Office.For more information, see How to: Add Windows Forms Controls to Office Documents.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets de niveau document et aux projets de compléments VSTO pour Excel et Word.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.

Utilisation des contrôles Windows FormsUsing Windows Forms Controls

Vous pouvez ajouter des contrôles Windows Forms à des documents et à des éléments d’interface utilisateur personnalisables, y compris des volets d’actions, des volets Office personnalisés et des Windows Forms.You can add Windows Forms controls to documents and to customizable user interface (UI) elements, including actions panes, custom task panes, and Windows Forms. Les contrôles Windows Forms ont généralement le même comportement dans des documents que sur ces autres éléments d’interface utilisateur, mais il existe certaines différences.Windows Forms controls generally have the same behavior on documents as on these other UI elements, but some differences do exist. Pour plus d'informations, consultez Limitations des contrôles Windows Forms dans les documents Office.For information, see Limitations of Windows Forms Controls on Office Documents.

La décision d’ajouter des contrôles Windows Forms à un document ou à un autre élément d’interface utilisateur dépend de plusieurs facteurs.The decision whether to add Windows Forms controls to a document or some other UI element depends on several factors. Lors de la conception de l’interface utilisateur de votre solution, vous pouvez utiliser les contrôles Windows Forms comme décrit dans le tableau suivant.When designing the UI of your solution, consider the uses of Windows Forms controls as described in the following table.

Dans un document.On a document.

  • Lorsque vous souhaitez afficher les contrôles en permanence.When you want to display the controls 100% of the time.
  • Lorsque vous souhaitez que les utilisateurs entrent des données directement dans le document, par exemple dans des documents basés sur des formulaires où la surface d’édition est verrouillée.When you want users to enter data directly in the document, for example, in forms-based documents where the editing surface is locked.

  • Lorsque vous souhaitez que les contrôles soient alignés avec les données dans le document.When you want the controls to display in line with the data in the document. Par exemple, si vous ajoutez des boutons à chaque ligne d’un objet de liste, il vaut mieux qu’ils soient alignés avec chaque élément de liste.For example, if you are adding buttons to each row of a list object, you would want them in line with each list item.

    Dans le volet d’actions ou un volet Office personnalisé.On the actions pane or a custom task pane.

    • Lorsque vous souhaitez fournir des informations contextuelles à l’utilisateur.When you want to provide contextual information to the user.
  • Lorsque vous souhaitez que seuls les résultats, et non les contrôles de requête et les données, apparaissent dans le document.When you want only the results to appear in the document, and not the query controls and data.

  • Lorsque vous souhaitez vous assurer que les contrôles ne soient pas imprimés avec le document.When you want to ensure that the controls are not printed with the document.

  • Lorsque vous souhaitez vous assurer que les contrôles n’interfèrent pas avec la vue du document.When you want to ensure that controls do not interfere with the view of the document.

    Dans un Windows Form.On a Windows Form.

    • Lorsque vous souhaitez contrôler la taille de l’interface utilisateur.When you want to control the size of the UI.
  • Lorsque vous souhaitez empêcher les utilisateurs de masquer ou de supprimer les contrôles.When you want to prevent users from hiding or deleting the controls.

  • Lorsque vous souhaitez obtenir des informations à partir de l’utilisateur et l’empêcher de faire quoi que ce soit dans le document avant que ces informations aient été reçues.When you want to get input from the user, and prevent the user from doing anything in the document until the input is received.

Ajout de contrôles Windows Forms par programmationAdding Windows Forms Controls Programmatically

Vous pouvez ajouter des contrôles Windows Forms à des documents Word et des feuilles de calcul Excel au moment de l’exécution.You can add Windows Forms controls to Word documents and Excel worksheets at run time. Le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime fournit des méthodes d’assistance pour ajouter les contrôles Windows Forms les plus courants.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime provides helper methods for adding the most common Windows Forms controls. Ces méthodes d’assistance vous permettent d’ajouter rapidement des contrôles à votre document Office et d’accéder à la fonctionnalité Windows Forms et Office combinée de ces contrôles.These helper methods enable you to quickly add controls to your Office document and access the combined Windows Forms control functionality and Office-related functionality of these controls.

Pour plus d'informations, consultez Ajout de contrôles à des documents Office au moment de l'exécution.For more information, see Adding Controls to Office Documents at Run Time.

Utilisation de contrôles Windows Forms dans des projets au niveau du documentUsing Windows Forms Controls in Document-Level Projects

Certains aspects liés à l’utilisation des contrôles Windows Forms sur les documents sont uniques aux projets au niveau du document, qui vous permettent de concevoir l’interface utilisateur de votre document en utilisant le concepteur Visual Studio.Some aspects of using Windows Forms controls on documents are unique to document-level projects, which enable you to design the UI of your document by using the Visual Studio designer.

Création de contrôles utilisateur personnalisésCreating Custom User Controls

Vous pouvez ajouter un contrôle utilisateur à votre projet, puis l’ajouter à la Boîte à outils.You can add a user control to your project and then add it to the Toolbox. Vous pouvez ensuite faire glisser le contrôle utilisateur directement sur votre document, comme vous le feriez pour y ajouter un contrôle Windows Forms.You can then drag the user control directly to your document in the same way you would add a Windows Forms control to your document. Notez les points suivants lors de la création de contrôles utilisateur :There are some things to keep in mind when you create user controls:

  • Ne créez pas un contrôle utilisateur sealed .Do not create a sealed user control. Lorsque vous faites glisser le contrôle sur votre document, Visual Studio génère une classe wrapper dérivée du contrôle utilisateur pour l’étendre et prendre en charge son utilisation dans le document.When you drag the control to your document, Visual Studio generates a wrapper class derived from the user control to extend it and support its use on the document. Si le contrôle utilisateur est sealed, Visual Studio ne peut pas générer la classe wrapper.If the user control is sealed, Visual Studio cannot generate the wrapper class.

  • L’attribut ComVisibleAttribute des contrôles utilisateur doit avoir la valeur true.User controls must have the ComVisibleAttribute attribute set to true. Contrôles utilisateur créés à l’intérieur d’un projet Office ont cet attribut la valeur true par défaut, mais les utilisateurs des contrôles qui font partie de projets extérieurs peut-être pas cet attribut la valeur true.User controls created inside an Office project have this attribute set to true by default, but user controls that are part of outside projects might not have this attribute set to true.

  • Après avoir ajouté un contrôle utilisateur au document, ne renommez pas et supprimez pas la classe UserControl du projet.After you have added a user control to the document, do not rename or delete the UserControl class from the project. Si vous devez modifier le nom d’un contrôle utilisateur, vous devez tout d’abord le supprimer du document, puis le rajouter après avoir modifié le nom.If you need to change the name of a user control you must first delete it from the document, and then add it again after the name has been changed.

Réorganisation des contrôles au moment du designArranging Controls at Design Time

Si vous ajoutez plusieurs contrôles à vos documents Word et Excel au moment du design, vous pouvez rapidement définir l’alignement de tous les contrôles sélectionnés à l’aide des barres d’outils Microsoft Office Word et Microsoft Office Excel dans Visual Studio.If you add multiple controls to your Word and Excel documents at design time, you can quickly set the alignment of all of the selected controls by using the Microsoft Office Word and Microsoft Office Excel toolbars in Visual Studio. Ces barres d’outils sont disponibles uniquement quand un document ou une feuille de calcul est ouvert(e) dans le concepteur.These toolbars are available only when a document or worksheet is open in the designer.

Quand vous sélectionnez plusieurs contrôles dans le concepteur, vous pouvez utiliser les boutons suivants sur ces barres d’outils pour réorganiser les contrôles :When you select multiple controls in the designer, you can use the following buttons on these toolbars to arrange the controls:

  • Aligner les côtés gauchesAlign Lefts

  • Aligner les centresAlign Centers

  • Aligner les côtés droitsAlign Rights

  • Aligner les sommetsAlign Tops

  • Aligner les milieuxAlign Middles

  • Aligner les basesAlign Bottoms

  • Égaliser l'espacement horizontalMake Horizontal Spacing Equal

  • Égaliser l'espacement verticalMake Vertical Spacing Equal

Note

Dans les projets Word, ces boutons sont activés uniquement si les contrôles sélectionnés ne sont pas alignés avec le texte.In Word projects, these buttons are enabled only if the selected controls are not in line with text. Par défaut, les contrôles que vous ajoutez au document au moment du design sont alignés avec le texte.By default, controls that you add to the document at design time are in line with text.

Empêcher des données anciennes d’apparaître dans les classeurs Excel pendant le chargementPreventing Old Data from Appearing in Excel Workbooks During Loading

Lorsque vous ajoutez des contrôles Windows Forms à des documents ou des feuilles de calcul au moment du design, les contrôles restent dans le document quand l’utilisateur le ferme.When you add Windows Forms controls to documents or worksheets at design time, the controls remain in the document when the user closes the document. Les contrôles ajoutés au moment du design sont également appelés contrôles statiques.Controls added at design time are also called static controls.

Quand vous ouvrez un classeur Excel qui contient des contrôles statiques, il affiche une bitmap du contrôle dans un contrôle ActiveX jusqu’à ce que le code de personnalisation s’exécute et charge le contrôle proprement dit.When an Excel workbook that contains static controls is opened, the workbook displays a bitmap of the control in an ActiveX control until the customization code runs and loads the actual control. Excel crée cette bitmap et la stocke dans le classeur chaque fois que celui-ci est enregistré.Excel creates this bitmap and stores it in the workbook whenever the workbook is saved. La bitmap affiche le contrôle tel qu’il apparaissait la dernière fois que le classeur a été enregistré, y compris les données affichées par le contrôle.The bitmap shows the control as it appeared the last time the workbook was saved, including any data that the control was displaying. Pour plus d’informations sur le contrôle ActiveX qui contient des contrôles Windows Forms et des bitmaps, consultez Limitations des contrôles Windows Forms dans les documents Office.For more information about the ActiveX control that contains Windows Forms controls and bitmaps, see Limitations of Windows Forms Controls on Office Documents.

Dans certaines conditions, par exemple lorsque l’utilisateur ouvre le classeur en mode Création, le code n’est pas chargé et seule la bitmap est affichée.In certain conditions, the code does not load and only the bitmap is displayed, such as when the user opens the workbook in design mode. En outre, si l’utilisateur ouvre le classeur sur un ordinateur sur lequel le Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime n’est pas installé, la personnalisation ne peut pas s’exécuter pour charger les contrôles et seule la bitmap du contrôle est visible.Also, if the user opens the workbook on a computer that does not have the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime installed, the customization cannot run to load the controls and therefore only the bitmap of the control is visible. Vous devez toujours supprimer les informations personnelles des contrôles dans les classeurs avant de les enregistrer et de les envoyer à un autre utilisateur, pour éviter toute divulgation involontaire.You should always remove personal information from controls on workbooks before saving the workbook and sending it to another user to ensure that your personal information is not accidentally disclosed.

Mise en correspondance de la taille de contrôle et de la taille de cellule sur une feuille de calcul ExcelMatching Control Size to Cell Size on an Excel Worksheet

Vous pouvez configurer le contrôle pour qu’il soit redimensionné automatiquement quand la taille de la cellule parente change.You can set the control to be resized automatically when the size of the parent cell is changed. Pour plus d’informations, consultez Comment : redimensionner des contrôles dans des cellules de feuille de calcul.For more information, see How to: Resize Controls Within Worksheet Cells.

Ajout de composants partagés par toutes les feuilles de calculAdding Components That Are Shared by All Worksheets

Vous pouvez ajouter des composants que vous souhaitez partager parmi toutes les feuilles de calcul, comme un DataSet, au Concepteur de classeurs plutôt qu’aux feuilles de calcul.You can add components that you want to share among all worksheets, such as a DataSet, to the Workbook Designer instead of to the worksheets. Le composant apparaîtra dans la barre d’état des composants.The component will appear on the component tray.

Formule pour incorporer des contrôles dans une feuille de calcul ExcelFormula for Embedding Controls on an Excel Worksheet

Quand vous sélectionnez un contrôle dans Excel, vous voyez =EMBED("WinForms.Control.Host","") dans la Barre de formule.When you select a control in Excel, you will see =EMBED("WinForms.Control.Host","") in the Formula Bar. Ce texte est nécessaire et ne doit pas être supprimé.This text is necessary and should not be deleted.

Style de disposition des contrôles dans un document WordLayout Style of Controls on a Word Document

Quand vous ajoutez un contrôle au document Word dans un projet au niveau du document à l’aide du concepteur Visual Studio, le contrôle est aligné avec le texte.When you add a control to the Word document in a document-level project by using the Visual Studio designer, the control is added in line with text. Pour modifier le style de disposition du contrôle, cliquez avec le bouton droit sur le contrôle, puis cliquez sur Format de contrôle.To change the layout style of the control, right-click the control and then click Format Control. Sélectionnez un style d’habillage dans la page Disposition de la boîte de dialogue Format d’objet .Select a wrapping style on the Layout page of the Format Object dialog box.

Lorsque vous ajoutez un contrôle à un document Word au moment de l’exécution, vous pouvez spécifier le style de disposition du nouveau contrôle à l’aide de différents Add < classe contrôle> surcharges de méthode de la ControlCollection classe :When you add a control to a Word document at run time, you can specify the layout style of the new control by using different Add<control class> method overloads of the ControlCollection class:

  • Pour aligner le contrôle avec le texte, utilisez une surcharge qui accepte un Range qui spécifie l’emplacement du contrôle.To add the control in line with text, use an overload that accepts a Range that specifies the location of the control.

  • Pour ajouter le contrôle en tant que forme flottante, utilisez une surcharge qui accepte les coordonnées de gauche et supérieure du contrôle.To add the control as a floating shape, use an overload that accepts the left and top coordinates of the control.

    Pour plus d'informations, consultez Ajout de contrôles à des documents Office au moment de l'exécution.For more information, see Adding Controls to Office Documents at Run Time.

    Si vous ouvrez un modèle Word dans le concepteur Visual Studio, les contrôles non inline sur le modèle ne seront peut-être pas visibles, car Visual Studio ouvre le modèle en mode Normal .If you open a Word template in the Visual Studio designer, non-inline controls on the template might not be visible because Visual Studio opens the template in Normal view. Pour afficher les contrôles, basculez en mode Page.To view the controls, change the view to Print Layout.

Contrôles en dehors du corps de document principalControls outside the Main Document Body

Les contrôles Windows Forms ne sont pas pris en charge dans un en-tête ou un pied de page, ni dans un sous-document.Windows Forms controls are not supported inside of a header or footer, or within a subdocument.

Ajout de composants au moment du designAdding Components at Design Time

Certains contrôles ou composants ne sont pas visibles dans le document, mais sont plutôt affichés dans une barre d’état des composants.Certain controls or components are not visible on the document and are instead displayed in a component tray. Visual Studio fournit une barre d’état des composants pour chaque fenêtre de document.Visual Studio provides a component tray for each document window. La barre d’état des composants est affichée à l’écran uniquement s’il existe des composants dans le document.The component tray appears on the screen only if components exist on the document.

Voir aussiSee Also

Contrôles sur des Documents Office Controls on Office Documents
Ajout de contrôles aux Documents Office au moment de l’exécution Adding Controls to Office Documents at Run Time
Vue d'ensemble des éléments hôtes et des contrôles hôtes Host Items and Host Controls Overview
Vue d’ensemble du volet Actions Actions Pane Overview
Contrôles Windows Forms Windows Forms Controls
Limitations des contrôles Windows Forms sur des Documents Office Limitations of Windows Forms Controls on Office Documents
Comment : ajouter des contrôles Windows Forms à des Documents Office How to: Add Windows Forms Controls to Office Documents
Comment : redimensionner des contrôles dans les cellules de feuille de calcul How to: Resize Controls Within Worksheet Cells
Comment : masquer des contrôles sur des feuilles de calcul lors de l’impression How to: Hide Controls on Worksheets when Printing
Procédure pas à pas : Modification de mise en forme de feuille de calcul à l’aide de contrôles CheckBox Walkthrough: Changing Worksheet Formatting Using CheckBox Controls
Procédure pas à pas : Modification de mise en forme d’un Document à l’aide de contrôles CheckBox Walkthrough: Changing Document Formatting Using CheckBox Controls
Procédure pas à pas : Affichage de texte dans une zone de texte dans une feuille de calcul à l’aide d’un bouton Walkthrough: Displaying Text in a Text Box in a Worksheet Using a Button
Procédure pas à pas : Affichage de texte dans une zone de texte dans un Document à l’aide d’un bouton Walkthrough: Displaying Text in a Text Box in a Document Using a Button
Limitations des contrôles Windows Forms sur des Documents Office Limitations of Windows Forms Controls on Office Documents
Procédure pas à pas : Mise à jour d’un graphique dans un Document à l’aide de cases d’option Walkthrough: Updating a Chart in a Document Using Radio Buttons
Procédure pas à pas : mise à jour d’un graphique dans une feuille de calcul à l’aide de cases d’optionWalkthrough: Updating a Chart in a Worksheet Using Radio Buttons