Controles de Windows Forms en información general sobre documentos de OfficeWindows Forms controls on Office documents overview

Los controles de Windows Forms son objetos con los que pueden interactuar los usuarios para escribir o manipular datos.Windows Forms controls are objects that users can interact with to enter or manipulate data. En los proyectos de nivel de documento para Microsoft Office Excel y Microsoft Office Word, puede agregar controles de formularios Windows Forms al documento o libro del proyecto en tiempo de diseño, o puede agregar estos controles mediante programación en tiempo de ejecución.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 runtime. Puede agregar estos controles mediante programación a cualquier documento o libro abierto en tiempo de ejecución en un complemento VSTO para Excel o Word.You can programmatically add these controls to any open document or worksheet at runtime in a VSTO Add-in for Excel or Word.

Para obtener más información, vea Cómo: Agregar controles de formularios Windows Forms a documentos de Office.For more information, see How to: Add Windows Forms controls to Office documents.

Se aplica a: La información de este tema se aplica al documento-proyectos y agregar de VSTO de nivel-en los proyectos de Excel y Word.Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Excel and Word. Para obtener más información, consulte características disponibles por tipo de aplicación y el proyecto de Office.For more information, see Features available by Office application and project type.

Usar controles de Windows FormsUse Windows Forms controls

Puede agregar controles de Windows Forms a documentos y a elementos de interfaz de usuario (IU) personalizables, incluidos paneles de acciones, paneles de tareas personalizados y formularios de 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. Los controles de formularios de Windows Forms tienen generalmente el mismo comportamiento en documentos que en estos otros elementos de interfaz de usuario, pero existen algunas diferencias.Windows Forms controls generally have the same behavior on documents as on these other UI elements, but some differences do exist. Para obtener información, consulte controla las limitaciones de los formularios Windows Forms en documentos de Office.For information, see Limitations of Windows Forms controls on Office documents.

La decisión de si desea agregar controles de formularios Windows Forms a un documento o algún otro elemento de interfaz de usuario depende de varios factores.The decision whether to add Windows Forms controls to a document or some other UI element depends on several factors. Al diseñar la interfaz de usuario de la solución, considere los usos de los controles de formularios Windows Forms, como se describe en la tabla siguiente.When designing the UI of your solution, consider the uses of Windows Forms controls as described in the following table.

En un documento.On a document.

  • Si desea mostrar los controles todo el tiempo.When you want to display the controls 100% of the time.

  • Si desea que los usuarios escriban datos directamente en el documento, por ejemplo, en documentos basados en formularios donde se bloquea la superficie de edición.When you want users to enter data directly in the document, for example, in forms-based documents where the editing surface is locked.

  • Si desea que los controles se muestren en consonancia con los datos del documento.When you want the controls to display in line with the data in the document. Por ejemplo, si va a agregar botones a cada fila de un objeto de lista, desearía tenerlos en consonancia con cada elemento de la lista.For example, if you are adding buttons to each row of a list object, you would want them in line with each list item.

En el panel de acciones o en el panel de tareas personalizado.On the actions pane or a custom task pane.

  • Si desea proporcionar información contextual al usuario.When you want to provide contextual information to the user.

  • Si desea que solo aparezcan los resultados en el documento y no los controles ni los datos de consulta .When you want only the results to appear in the document, and not the query controls and data.

  • Si desea asegurarse de que los controles no se imprimen con el documento.When you want to ensure that the controls are not printed with the document.

  • Si desea asegurarse de que los controles no interfieren con la vista del documento.When you want to ensure that controls do not interfere with the view of the document.

En un formulario de Windows Form.On a Windows Form.

  • Si desea controlar el tamaño de la interfaz de usuario.When you want to control the size of the UI.

  • Si desea impedir que los usuarios oculten o eliminen los controles.When you want to prevent users from hiding or deleting the controls.

  • Si desea obtener datos proporcionados por el usuario y evitar que el usuario realice cualquier acción en el documento hasta que se reciban estos datos.When you want to get input from the user, and prevent the user from doing anything in the document until the input is received.

Agregar controles de formularios Windows Forms mediante programaciónAdd Windows Forms controls programmatically

Puede agregar controles de formularios Windows Forms a documentos de Word y hojas de cálculo de Excel en tiempo de ejecución.You can add Windows Forms controls to Word documents and Excel worksheets at runtime. El Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime proporciona métodos del asistente para agregar los controles de formularios de Windows Forms más comunes.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime provides helper methods for adding the most common Windows Forms controls. Estos métodos del asistente permiten agregar rápidamente controles al documento de Office y obtener acceso a la funcionalidad combinada de control de formularios de Windows Forms y la funcionalidad relacionada con Office de estos controles.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.

Para obtener más información, consulte agregar controles a documentos de Office en tiempo de ejecución.For more information, see Add controls to Office documents at runtime.

Usar controles de formularios Windows Forms en proyectos de nivel de documentoUse Windows Forms controls in document-level projects

Algunos aspectos del uso de controles de formularios de Windows Forms en documentos son únicos de los proyectos de nivel de documento, que le permiten diseñar la interfaz de usuario del documento mediante el Diseñador de 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.

Crear controles de usuario personalizadosCreate custom user controls

Puede agregar un control de usuario al proyecto y luego agregarlo al Cuadro de herramientas.You can add a user control to your project and then add it to the Toolbox. Luego puede arrastrar el control de usuario directamente al documento de la misma manera que agregaría un control de formularios de Windows Forms al documento.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. Hay algunos aspectos que tener en cuenta al crear controles de usuario:There are some things to keep in mind when you create user controls:

  • No cree un control de usuario sealed .Do not create a sealed user control. Al arrastrar el control a su documento, Visual Studio genera una clase contenedora derivada del control de usuario para extenderlo y permitir su uso en el documento.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 el control de usuario es sealed, Visual Studio no puede generar la clase contenedora.If the user control is sealed, Visual Studio cannot generate the wrapper class.

  • Los controles de usuario deben tener el atributo ComVisibleAttribute establecido en true.User controls must have the ComVisibleAttribute attribute set to true. Los controles de usuario creados dentro de un proyecto de Office tienen este atributo establecido en true de manera predeterminada, pero los controles de usuario que forman parte de proyectos externos pueden no tener este atributo establecido en 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.

  • Después de agregar un control de usuario al documento, no cambie el nombre ni elimine UserControl la clase del proyecto.After you have added a user control to the document, do not rename or delete the UserControl class from the project. Si necesita cambiar el nombre de un control de usuario, debe eliminarlo primero del documento y luego agregarlo de nuevo después de cambiarle el nombre.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.

Organizar controles en tiempo de diseñoArrange controls at design time

Si agrega varios controles a sus documentos de Word y Excel en tiempo de diseño, puede establecer rápidamente la alineación de todos los controles seleccionados mediante las barras de herramientas de Microsoft Office Word y Microsoft Office Excel en 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. Estas barras de herramientas solo están disponibles cuando un documento o una hoja de cálculo están abiertas en el diseñador.These toolbars are available only when a document or worksheet is open in the designer.

Al seleccionar varios controles en el diseñador, puede utilizar los siguientes botones de estas barras de herramientas para organizar los controles:When you select multiple controls in the designer, you can use the following buttons on these toolbars to arrange the controls:

  • Alinear lados izquierdosAlign Lefts

  • Alinear centrosAlign Centers

  • Alinear lados derechosAlign Rights

  • Alinear lados superioresAlign Tops

  • Alinear puntos mediosAlign Middles

  • Alinear lados inferioresAlign Bottoms

  • Igualar espaciado horizontalMake Horizontal Spacing Equal

  • Igualar espaciado verticalMake Vertical Spacing Equal

Note

En proyectos de Word, estos botones están habilitados solo si los controles seleccionados no están en línea con el texto.In Word projects, these buttons are enabled only if the selected controls are not in line with text. De forma predeterminada, los controles que se agregan al documento en tiempo de diseño están en línea con el texto.By default, controls that you add to the document at design time are in line with text.

Impedir que los datos antiguos aparezcan en los libros de Excel durante la cargaPrevent old data from appearing in Excel workbooks during loading

Al agregar controles de formularios de Windows Forms a documentos u hojas de cálculo en tiempo de diseño, los controles permanecen en el documento cuando el usuario cierra el documento.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. Los controles agregados en tiempo de diseño también se denominan controles estáticos.Controls added at design time are also called static controls.

Cuando se abre un libro de Excel que contiene controles estáticos, el libro presenta un mapa de bits del control en un control ActiveX hasta que el código de personalización se ejecute y cargue el control real.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 crea este mapa de bits y lo almacena en el libro cada vez que se guarde el libro.Excel creates this bitmap and stores it in the workbook whenever the workbook is saved. El mapa de bits muestra el control tal como aparecía la última vez que se guardó el libro, incluidos los datos que estaba mostrando el control.The bitmap shows the control as it appeared the last time the workbook was saved, including any data that the control was displaying. Para obtener más información sobre el control ActiveX que contiene controles de formularios Windows Forms y mapas de bits, consulte controla las limitaciones de los formularios Windows Forms en documentos de Office.For more information about the ActiveX control that contains Windows Forms controls and bitmaps, see Limitations of Windows Forms controls on Office documents.

En ciertas condiciones, el código no se carga y solo se muestra el mapa de bits, por ejemplo, cuando el usuario abre el libro en modo de diseño.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. Además, si el usuario abre el libro en un equipo que no tenga Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime instalado, no se puede ejecutar la personalización para cargar los controles y, por tanto, solo está visible el mapa de bits del control.Also, if the user opens the workbook on a computer that does not have the Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime installed, the customization cannot run to load the controls and therefore only the bitmap of the control is visible. Siempre debe quitar la información personal de los controles en los libros antes de guardar el libro y enviarlo a otro usuario para asegurarse de que su información personal no se revele accidentalmente.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.

Ajustar el tamaño del control al tamaño de la celda en una hoja de cálculo de ExcelMatch control size to cell size on an Excel worksheet

Puede establecer el control para cambiar de tamaño automáticamente cuando se cambia el tamaño de la celda principal.You can set the control to be resized automatically when the size of the parent cell is changed. Para obtener más información, vea Cómo: Cambiar el tamaño de los controles dentro de las celdas de la hoja de cálculo.For more information, see How to: Resize controls within worksheet cells.

Agregar componentes compartidos por todas las hojas de cálculoAdd components that are shared by all worksheets

Puede agregar componentes que desee compartir entre todas las hojas de cálculo, como un DataSet, al diseñador del libro en lugar de a las hojas de cálculo.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. El componente aparecerá en la bandeja de componentes.The component will appear on the component tray.

Fórmula para incrustar controles en una hoja de cálculo de ExcelFormula for embedding controls on an Excel worksheet

Cuando seleccione un control en Excel, verá =EMBED("WinForms.Control.Host","") en la Barra de fórmulas.When you select a control in Excel, you will see =EMBED("WinForms.Control.Host","") in the Formula Bar. Este texto es necesario y no se debe eliminar.This text is necessary and should not be deleted.

Estilo de diseño de controles en un documento de WordLayout style of controls on a Word document

Cuando se agrega un control al documento de Word en un proyecto de nivel de documento mediante el diseñador de Visual Studio, el control se agrega en línea con el texto.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. Para cambiar el estilo de diseño del control, haga doble clic en el control, y luego haga clic en Formato de control.To change the layout style of the control, right-click the control and then click Format Control. Seleccione un estilo de ajuste en la página Diseño del cuadro de diálogo Formato de objeto .Select a wrapping style on the Layout page of the Format Object dialog box.

Cuando se agrega un control a un documento de Word en tiempo de ejecución, puede especificar el estilo de diseño del nuevo control mediante el uso de diferentes Add < clase control> sobrecargas del método de la ControlCollection clase:When you add a control to a Word document at runtime, you can specify the layout style of the new control by using different Add<control class> method overloads of the ControlCollection class:

  • Para agregar el control en línea con el texto, use una sobrecarga que acepte un Range que especifique la ubicación del control.To add the control in line with text, use an overload that accepts a Range that specifies the location of the control.

  • Para agregar el control como una forma flotante, use una sobrecarga que acepte las coordenadas superiores e izquierdas del control.To add the control as a floating shape, use an overload that accepts the left and top coordinates of the control.

    Para obtener más información, consulte agregar controles a documentos de Office en tiempo de ejecución.For more information, see Add controls to Office documents at runtime.

    Si abre una plantilla de Word en el diseñador de Visual Studio, los controles no alineados en la plantilla podrían no verse, porque Visual Studio abre la plantilla en vista 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. Para ver los controles, cambie la vista a Diseño de impresión.To view the controls, change the view to Print Layout.

Controles fuera del cuerpo del documento principalControls outside the main document body

Los controles de formularios de Windows Forms no se admiten dentro de un encabezado o pie de página, ni dentro de un subdocumento.Windows Forms controls are not supported inside of a header or footer, or within a subdocument.

Agregar componentes en tiempo de diseñoAdd components at design time

Algunos controles o componentes no están visibles en el documento y, en su lugar, se muestran en una bandeja de componentes.Certain controls or components are not visible on the document and are instead displayed in a component tray. Visual Studio proporciona una bandeja de componentes para cada ventana de documento.Visual Studio provides a component tray for each document window. La bandeja de componentes aparece en la pantalla solo si existen componentes en el documento.The component tray appears on the screen only if components exist on the document.

Vea tambiénSee also