Limitaciones de los controles de formularios Windows Forms en los documentos de Office
Actualización: Julio de 2008
Se aplica a |
---|
La información de este tema sólo se aplica a los proyectos y versiones especificados de Visual Studio Tools para Office de Microsoft Office. Proyectos de nivel de documento
Proyectos de nivel de aplicación
Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto. |
Existen algunas diferencias entre los controles de formularios Windows Forms que se agregan a documentos de Microsoft Office Word u hojas de cálculo de Microsoft Office Excel, y los controles de formularios Windows Forms que se agregan a formularios Windows Forms. Por ejemplo, cuando se agrega un control Button a un documento, las propiedades como Dock, Anchor y TabIndex no se comportan como cabría esperar.
Muchas de estas diferencias proceden del modo en que los controles de los formularios Windows Forms se hospedan en los documentos. Cuando se agrega un control de formularios Windows Forms a un documento, Visual Studio Tools para Office incrusta un control ActiveX que después hospeda el control de formularios Windows Forms en el documento. El control de formularios Windows Forms no se incrusta directamente en el documento.
Limitaciones de los métodos y las propiedades de los controles de Windows Forms
Existe una serie de métodos y propiedades de controles de Windows Forms que no funcionan en un documento como lo harían en un formulario Windows Forms y, por consiguiente, se recomienda no utilizarlos. Por ejemplo, establecer propiedades como Dock y Anchor solo afecta a la posición del control de los formularios Windows Forms con respecto al control ActiveX contenedor, no con respecto al documento. A continuación, se muestra una lista de métodos y propiedades de controles de Windows Forms no compatibles con Word y Excel:
Métodos y propiedades no compatibles con controles de Excel:
Anchor
Dock
Location
TabIndex
TabStop
TopLevelControl
Métodos y propiedades no compatibles con controles de Word:
Hide
Show
Anchor
Dock
Location
TabIndex
TabStop
TopLevelControl
Visible
Tampoco puede establecer la propiedad Top o Left de los controles de formularios Windows Forms que están en línea con el texto de un documento de Word. Los controles de formularios Windows Forms se agregan en línea con el texto en los casos siguientes:
cuando agrega mediante programación un control a un documento de Word y utiliza un método que especifica un intervalo para la ubicación. Para obtener más información, vea Métodos auxiliares para controles de formularios Windows Forms.
cuando agrega un control de formularios Windows Forms a un documento de Word en tiempo de diseño. Puede cambiar esto modificando el control en el diseñador. Para obtener más información, vea Utilizar controles de formularios Windows Forms en documentos de Word..
Diferencias de los controles de Windows Forms en documentos de Office
En líneas generales, los controles de formularios Windows Forms presentan el mismo comportamiento en un documento de Office que en un formulario Windows Forms, pero existen algunas diferencias. En la tabla siguiente se describen las diferencias que existen para los controles de formularios Windows Forms en documentos de Office:
Funcionalidad |
Difference |
---|---|
Orden de tabulación de los controles |
No se puede utilizar el tabulador en los controles colocados en una hoja de cálculo de Excel o en un documento de Word. |
Agrupación de los controles |
No se puede utilizar un control GroupBox para contener otros controles en un documento de Office. Cuando se agregan varios botones de opción directamente al documento, éstos se excluyen mutuamente. Se puede escribir código para que los botones de opción se excluyan mutuamente. No obstante, el enfoque preferido consiste en agregar los botones de opción a un control de usuario y, a continuación, agregar el control de usuario al documento. Para obtener más información, vea Ejemplo Word Controls o Ejemplo Excel Controls. |
Tipo de control |
Visual Studio Tools para Office proporciona una clase contenedora para los controles de formularios Windows Forms utilizados en documentos que les ofrece una función adicional específica para la hoja de cálculo de Excel o el documento de Word. Por ejemplo, si tiene un control Button en una hoja de cálculo de Excel, asegúrese de especificar el tipo como Microsoft.Office.Tools.Excel.Controls.Button en lugar de como System.Windows.Forms.Button cuando se haga referencia al objeto o se proceda a su conversión. |
Posición y tamaño de los controles |
El tamaño y posición del control vienen determinados por las propiedades que forman parte del control ActiveX contenedor. Las propiedades del control ActiveX no adquieren los mismos valores que las propiedades equivalentes de un control de formularios Windows Forms. Cuando se establecen las propiedades Top, Left, Height o Width de un control, éstas se miden en puntos en lugar de en píxeles. |
Posición de los controles en documentos de Word |
Si agrega controles a un diseño de flujo, tenga presente que los controles fluirán con el contenido conforme vaya cambiando. Cuando se arrastra un control desde el Cuadro de herramientas, no se puede delimitar a un párrafo porque el control se agrega al documento de Word en línea con el texto. Si se utiliza otro método para agregar el control, como hacer doble clic en el control, el control se insertará según la opción de Word que se haya establecido para la inserción de imágenes. No se puede establecer la propiedad Left o Top de un control que esté insertado en el texto. No puede colocar los controles en un encabezado o pie de página, ni dentro de un subdocumento. |
Eventos de control |
Cuando se selecciona el control, inicia eventos en el orden siguiente:
Cuando se cancela la selección del control, inicia eventos en el orden siguiente:
|
Ajuste de escala de los controles |
Cuando se cambia la configuración de zoom de un documento por un valor distinto de 100%, se deshabilitan los controles, aunque parezca que se ajustan a la escala del documento. Por ejemplo, si hace clic en un botón cuando el documento tiene un zoom de 130%, mostrará un mensaje que indica que se ha deshabilitado el control hasta que el zoom se establezca en 100%. Los controles funcionarán correctamente cuando se cambie el zoom a 100%. |
Valores de las propiedades de los controles |
Aunque las propiedades de controles de Windows Forms se establecen en un valor entero, se establecen en Single en el caso de los controles de documentos de Word. En Excel, los valores de las propiedades de los controles se establecen en Double. Si la propiedad Height y Width de un control en una hoja de cálculo supera el tamaño de la hoja de cálculo o de la pantalla, se trunca el valor. |
Cambio de tamaño de los controles |
Si cambia el tamaño de un control en el documento mediante uno de los ocho controladores de tamaño, las nuevas dimensiones del control no se reflejarán en la ventana Propiedades hasta que no se vuelva a seleccionar el control. |
Comportamiento de los controles |
Es posible que los controles de una hoja de cálculo de Excel se comporten de forma imprevisible al dividir la ventana de la hoja de cálculo. Por ejemplo, puede que el acceso al control TextBox en la hoja de cálculo sólo esté disponible en una de las ventanas. |
Denominación de los controles |
No se puede utilizar palabras reservadas para denominar controles. Por ejemplo, si se agrega un control Button a una hoja de cálculo y se cambia el nombre a System, se producirán errores al general el proyecto. |
Adición de controles mediante programación |
No utilice el constructor del control para agregar un control al documento en tiempo de ejecución. En su lugar, utilice los métodos auxiliares que proporciona Visual Studio Tools para Office. Por ejemplo, utilice el método AddButton para agregar un botón a una hoja de cálculo. Si desea agregar un control no admitido por estos métodos auxiliares, puede utilizar el método AddControl. Para obtener más información, vea Agregar controles a documentos de Office en tiempo de ejecución. |
Copia de los controles |
Si se copia un control de formularios Windows Forms y se pega en un documento en tiempo de ejecución, se pegará un control ActiveX contenedor en el documento. El control de formularios Windows Forms no aparece en la nueva ubicación y el código subyacente al control original no se copia en el control ActiveX contenedor. |
Limitaciones de los proyectos en el nivel del documento
Algunas limitaciones del uso de controles de formularios Windows Forms en documentos son únicas de proyectos en el nivel del documento.
Controles compatibles en tiempo de diseño
Cuando se abre una hoja de cálculo de Excel o un documento de Word en el diseñador de Visual Studio, se quitan del Cuadro de herramientas ciertos controles de Windows Forms. Esto se debe a limitaciones técnicas o al hecho de que la funcionalidad ya esté disponible en Word o Excel. Visual Studio Tools para Office admite todos los controles de formularios Windows Forms y otros componentes que aparecen en el Cuadro de herramientas cuando el documento tiene el foco y, además, permite agregar al documento controles de otro fabricante.
Nota: |
---|
Si el documento está protegido, se quitan todos los controles del Cuadro de herramientas. Para obtener información sobre la protección de documentos, vea Protección de documentos en soluciones de nivel de documento. |
Nota: |
---|
Los controles de otro fabricante deben tener el atributo ComVisibleAttribute establecido en true para usarlos en una solución de Visual Studio Tools para Office. |
Los controles y componentes siguientes no están disponibles en el Cuadro de herramientas:
CrystalReportViewer
Compatibilidad con controles ActiveX heredados
Si crea un proyecto de Visual Studio Tools para Office con un documento de Word o un libro de Excel existentes que contengan controles ActiveX, no se pierde la funcionalidad de los controles ActiveX; sin embargo, no existe compatibilidad alguna con la adición de controles ActiveX nuevos a los documentos desde Visual Studio Tools para Office. Por ejemplo, si el documento de Word tiene un botón del Cuadro de controles que ejecuta una macro de Visual Basic para Aplicaciones (VBA), continuará ejecutando dicha macro después de haber utilizado el documento en un proyecto de Visual Studio Tools para Office. No obstante, se recomienda quitar los controles ActiveX y las macros de VBA, y reemplazarlos con controles de Windows Forms y código administrado.
Vea también
Tareas
Cómo: Agregar controles de Windows Forms a documentos de Office
Conceptos
Información general sobre controles de formularios Windows Forms en documentos de Office
Agregar controles a documentos de Office en tiempo de ejecución
Otros recursos
Controles en documentos de Office
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2008 |
Información agregada para diferenciar las limitaciones generales y las limitaciones concretas de las personalizaciones en el nivel del documento. |
Cambio de características de SP1. |