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

  • Excel 2003

  • Excel 2007

  • Word 2003

  • Word 2007

Proyectos de nivel de aplicación

  • Excel 2007

  • Word 2007

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:

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:

  1. Enter

  2. GotFocus

Cuando se cancela la selección del control, inicia eventos en el orden siguiente:

  1. Leave

  2. Validating

  3. Validated

  4. LostFocus

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:

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.