Limitaciones de los controles de Windows Forms en documentos de Office

Existen algunas diferencias entre los controles de Windows Forms que se agregan a documentos de Microsoft Office Word o hojas de cálculo de Microsoft Office Excel y controles de Windows Forms que se agregan a Windows Forms. Por ejemplo, al agregar un Button control a un documento, las propiedades como Dock, Anchory TabIndex no se comportan como cabría esperar.

Muchas de estas diferencias se deben a la forma en que los controles de Windows Forms se hospedan en documentos. Cuando se agrega un control de Windows Forms a un documento, el Visual Studio Tools para Office tiempo de ejecución inserta un control ActiveX que hospeda el control de Windows Forms en el documento. El control de Windows Forms no está incrustado directamente en el documento.

Se aplica a: La información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para Excel y Word. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Limitaciones de métodos y propiedades de controles de Windows Forms

Hay una serie de métodos y propiedades de controles de Windows Forms que no funcionan de la misma manera en un documento como lo harían en windows Forms y, por lo tanto, se recomienda que no se usen. Por ejemplo, establecer propiedades como Dock y Anchor solo afecta a la posición del control con respecto al control ActiveX contenedor, en lugar del documento. A continuación se muestra una lista de métodos y propiedades no admitidos de controles de Windows Forms para Word y Excel:

Tampoco puede establecer la Left propiedad o Top de los controles de Windows Forms que están en línea con texto en un documento de Word. Los controles de Windows Forms se agregan en línea con texto en los casos siguientes:

  • Agregue mediante programación un control a un documento de Word y use un método que especifique un intervalo para la ubicación.

  • Agrega un control de Windows Forms a un documento de Word en tiempo de diseño. Puede cambiarlo modificando el control en el diseñador.

Diferencias en los controles de Windows Forms en documentos de Office

Los controles de Windows Forms generalmente tienen 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 Windows Forms en documentos de Office.

Funcionalidad Diferencia
Orden de tabulación de control No se pueden realizar tabulaciones a través de controles colocados en una hoja de cálculo de Excel o un documento de Word.
Agrupación de controles No puede usar un GroupBox control para contener otros controles en un documento de Office. Al agregar varios botones de radio directamente al documento, los botones de radio no son mutuamente excluyentes. Puede escribir código para que los botones de radio sean mutuamente excluyentes; sin embargo, el enfoque preferido es agregar los botones de radio a un control de usuario y, a continuación, agregar el control de usuario al documento. Para obtener más información, vea el ejemplo de controles de Word o el ejemplo de controles de Excel en ejemplos de desarrollo de Office y tutoriales.
Tipo de control Los controles de Windows Forms usados en los documentos se encapsulan en una clase proporcionada por el entorno de ejecución de Visual Studio Tools para Office que proporciona a los controles funcionalidades adicionales específicas de 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 Button en lugar de Button al hacer referencia o convertir el objeto.
Posición y tamaño del control El tamaño y la posición del control se determinan mediante propiedades que forman parte del control ActiveX del contenedor. Las propiedades del control ActiveX toman valores diferentes a las propiedades equivalentes de un control de Windows Forms. Al establecer las Toppropiedades , Left, Heighto Width de un control, se mide en puntos, en lugar de píxeles.
Posición de control en documentos de Word Si agrega controles a un diseño basado en flujo, tenga en cuenta que los controles fluirán con el contenido a medida que cambia el contenido. No se puede anclar el control a un párrafo al arrastrarlo desde el Cuadro de herramientas porque el control se agrega al documento de Word en línea con texto. Si usa otro método para agregar el control, como hacer doble clic en el control, el control se inserta según la opción Word que ha establecido para insertar imágenes.

No se puede establecer la Left propiedad o Top de un control alineado con texto.

No se pueden colocar controles en un encabezado o pie de página, ni en un subdocumento.
Eventos de control Cuando se selecciona el control, genera eventos en el orden siguiente:

1. Enter
2. GotFocus

Cuando se deselecciona el control, genera eventos en el orden siguiente:

1. Leave
2. Validating
3. Validated
4. LostFocus
Escalado de controles Al cambiar la configuración de zoom de un documento a cualquier otro valor distinto del 100 %, los controles se deshabilitan, aunque parecen escalar con el documento. Por ejemplo, si hace clic en un botón cuando el documento está en un zoom del 130 %, mostrará un mensaje que indica que el control se ha deshabilitado hasta que el zoom esté establecido en 100 %. Los controles funcionarán correctamente cuando cambie el zoom a 100 %.
Valores de propiedad de control Aunque las propiedades de los controles de un formulario Windows Form se establecen en un valor entero, se establecen en un solo para los controles de un documento de Word. En Excel, los valores de propiedad de los controles se establecen en un valor double. Si la Height propiedad y Width de un control de una hoja de cálculo supera el tamaño de la hoja de cálculo o pantalla, el valor se trunca.
Cambio de tamaño del control Si cambia el tamaño de un control del documento mediante uno de los ocho identificadores de tamaño, las nuevas dimensiones de control no se reflejan en la ventana Propiedades hasta que se vuelva a seleccionar el control.
Comportamiento del control Los controles de una hoja de cálculo de Excel pueden comportarse de forma imprevisible cuando se divide la ventana de la hoja de cálculo. Por ejemplo, el acceso a un TextBox elemento de la hoja de cálculo solo puede estar disponible en una de las ventanas.
Nomenclatura de controles No se pueden usar palabras reservadas para asignar nombres a los controles. Por ejemplo, si agrega un elemento Button a una hoja de cálculo y cambia el nombre a Sistema, se producen errores al compilar el proyecto.
Agregar controles mediante programación No use el constructor del control para agregar un control al documento en tiempo de ejecución. En su lugar, use los métodos auxiliares proporcionados por el entorno de ejecución de Visual Studio Tools para Office . Por ejemplo, use el AddButton método para agregar un botón a una hoja de cálculo. Si desea agregar un control que no sea compatible con estos métodos auxiliares, puede usar el AddControl método . Para obtener más información, vea Agregar controles a documentos de Office en tiempo de ejecución.
Copiar controles Si copia un control de Windows Forms y lo pega en un documento en tiempo de ejecución, se pega un control ActiveX de contenedor vacío en el documento. El control de 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 en proyectos de nivel de documento

Algunas limitaciones del uso de controles de Windows Forms en documentos son exclusivas de los proyectos de nivel de documento.

Compatibilidad con el control en tiempo de diseño

Algunos controles de Windows Forms se quitan del Cuadro de herramientas cuando se abre una hoja de cálculo de Excel o un documento de Word en el diseñador de Visual Studio. Esto se debe a limitaciones técnicas o porque la funcionalidad ya está disponible en Word o Excel. Los proyectos de Excel y Word admiten todos los controles de Windows Forms y otros componentes que aparecen en el Cuadro de herramientas cuando el documento tiene el foco, y también puede agregar controles de terceros a una hoja de cálculo o documento.

Nota:

Todos los controles se quitan del Cuadro de herramientas cuando se protege un documento. Para obtener información sobre la protección de documentos, consulte Protección de documentos en soluciones de nivel de documento.

Nota:

Los controles de terceros deben tener el ComVisibleAttribute atributo establecido en true para poder usarse en una solución de Office.

Los siguientes controles y componentes no están disponibles en el Cuadro de herramientas:

Compatibilidad con controles ActiveX heredados

Si crea un proyecto de Office de nivel de documento que usa un documento de Word existente o un libro de Excel que contiene controles ActiveX, la funcionalidad de los controles ActiveX no se pierde; sin embargo, no hay compatibilidad para agregar nuevos controles ActiveX a los documentos desde Visual Studio. Por ejemplo, si el documento de Word tiene un botón del cuadro de herramientas Control que ejecuta una macro de Visual Basic para Aplicaciones (VBA), seguirá ejecutando la macro después de que el documento se haya usado en un proyecto de Office. Sin embargo, se recomienda quitar controles ActiveX y macros de VBA y reemplazarlos por controles de Windows Forms y código administrado.