Exportar (0) Imprimir
Expandir todo

Información general sobre elementos y controles Host

Los elementos y controles host son clases que proporcionan el modelo de programación para las soluciones de Visual Studio Tools para Office. Es decir, interactúan con las aplicaciones de Microsoft Office, que están basadas en COM, de forma muy parecida a como interactúan con objetos administrados.

Elementos host

Los elementos host proporcionan un punto de entrada para el código en las soluciones de Visual Studio Tools para Office.

Los complementos de nivel de aplicación utilizan el elemento host Microsoft.Office.Tools.AddIn. Este elemento host proporciona acceso al modelo de objetos de la aplicación host y los miembros que se pueden utilizar para personalizar la interfaz de la aplicación host. Para obtener más información, vea AddIn.

Las personalizaciones de nivel de documento utilizan un conjunto diferente de elementos host que incluye Microsoft.Office.Tools.Word.Document y Microsoft.Office.Tools.Excel.Worksheet. Estos elementos host tienen diseñadores que son la representación visual de la clase, muy parecidos al Diseñador de Windows Forms. Estos elementos host pueden enlazarse a los datos y son un contenedor para controles como los controles host y los de formularios Windows Forms. Para obtener más información, vea Document y Hoja de cálculo.

También hay un elemento host Microsoft.Office.Tools.Excel.Workbook, pero no actúa como contenedor de controles host. El libro funciona como una bandeja de componentes, lo que permite arrastrar un componente, como DataSet, a la superficie de diseño. Para obtener más información, vea Libro.

Controles de host

Los controles host extienden los objetos incluidos en los modelos de objetos de Microsoft Office Word 2003 y Microsoft Office Excel 2003; dicho de otra forma, los controles host se basan en los objetos nativos de Office. Los controles host sólo están disponibles en las personalizaciones de nivel de documento.

Los controles host agregados a los documentos de Office se comportan como los objetos nativos de Office, como por ejemplo los intervalos; sin embargo, los controles host poseen funcionalidad adicional, que incluye eventos y capacidades de enlace a datos. Por ejemplo, cuando desea capturar los eventos de un objeto Microsoft.Office.Interop.Excel.Range nativo en Excel, debe interceptar primero el evento de cambio de la hoja de cálculo. A continuación debe determinar si el cambio se produjo dentro de los intervalos Microsoft.Office.Interop.Excel.Range. Con el control Microsoft.Office.Tools.Excel.NamedRange puede tener acceso al evento de cambio directamente.

La relación entre un elemento host y los controles host de una personalización es muy parecida a la relación entre un formulario Windows Forms y los controles de formularios Windows Forms. Igual que colocaría un control de cuadro de texto en un formulario Windows Forms, puede colocar un control Microsoft.Office.Tools.Excel.NamedRange en un elemento host Microsoft.Office.Tools.Excel.Worksheet.

Además, Visual Studio Tools para Office permite utilizar los controles de formularios Windows Forms en los proyectos de nivel de documento si se agregan directamente en la superficie del documento de Word y Excel. Para obtener más información, vea Información general sobre controles de formularios Windows Forms en documentos de Office.

NoteNota

No se pueden agregar controles host ni controles de formularios Windows Forms a un subdocumento de Word.

Comparación de elementos y controles host con objetos nativos de Office

Los elementos host y los controles host en los proyectos de nivel de documento son diferentes en varios aspectos de los objetos de Office nativos subyacentes. Además, existen varias limitaciones para la programación basada en elementos o controles host. Para obtener más información, vea Limitaciones de programación de elementos y controles Host.

Los elementos y controles host se diferencian de los objetos nativos de Office en los siguientes aspectos:

  • Los controles host generalmente tienen la misma funcionalidad básica de los objetos de Office en los que están basados, pero están mejorados por:

    • Ofrecer modelos de eventos enriquecidos.

    • Tener capacidades de enlace a datos.

    En algunos casos, la funcionalidad básica es distinta porque el control se crea mediante una combinación de distintos tipos de objetos. Para obtener un ejemplo, vea Bookmark (Control).

  • Los controles host son clases compatibles con Microsoft .NET construidas sobre los objetos nativos de Office.

  • Los controles host son del tipo Microsoft.Office.Tools.Excel o Microsoft.Office.Tools.Word, mientras que los objetos nativos son del tipo Microsoft.Office.Interop.Excel o Microsoft.Office.Interop.Word.

  • Los elementos host no se pueden crear mediante programación; sin embargo, mediante programación, la mayoría de los controles host se pueden agregar y eliminar de los documentos de Word y Excel. Para obtener más información, vea Limitaciones de programación de elementos y controles Host.

Agregar controles host a sus documentos

Puede agregar controles host a los documentos de Word 2003 o los libros de Excel 2003 de cuatro formas:

Nombres de los controles host

Si arrastra un control host del Cuadro de herramientas al documento, se asignará automáticamente al control un nombre en el que se utiliza el tipo de control y un número incremental anexado al final. Por ejemplo, a dos controles Bookmark se les asignaría el nombre Bookmark1 y Bookmark2. Si utiliza la funcionalidad nativa de Word o Excel para agregar el control, puede darle un nombre específico en el momento de crearlo. También es posible cambiar el nombre de los controles utilizando la propiedad Name en la ventana Propiedades.

NoteNota

No puede utilizar palabras reservadas como nombre de los controles host. Por ejemplo, si agrega un control NamedRange a una hoja de cálculo y le cambia el nombre a System, se producirán errores cuando genere el proyecto.

Eliminar controles host

En la mayoría de los casos, los controles host se pueden eliminar en tiempo de diseño seleccionando el control en la hoja de cálculo de Excel o en el documento de Word y presionando la tecla SUPR. Sin embargo, se debe utilizar el cuadro de diálogo Definir nombre en Excel para eliminar controles NamedRange. Para obtener más información, vea Cómo: Eliminar controles NamedRange en tiempo de diseño.

Si agrega un control host a un documento en tiempo de diseño, no debe quitarlo mediante programación en tiempo de ejecución porque la próxima vez que intente utilizar el control en el código, se produce una excepción. El método Delete de un control host sólo quita controles host agregados al documento en tiempo de ejecución. Si llama al método Delete de un control host creado en tiempo de diseño, se produce una excepción. Por ejemplo, Bookmark1.Delete sólo elimina correctamente Bookmark1 si se agregó al documento mediante programación. Los controles host creados dinámicamente también pueden quitarse pasando el nombre del control al método Remove de ControlsCollection. Para obtener más información, vea Agregar controles a documentos de Office en tiempo de ejecución.

Si los usuarios finales eliminan un control host (como un marcador) del documento en tiempo de ejecución, se podrían producir errores en la solución de formas inesperadas. Es posible utilizar las funciones de protección de documentos de Word y Excel para evitar que se eliminen los controles host. Para obtener más información, vea Ejemplo Word Document Protection Techniques y Ejemplo Excel Document Protection Techniques.

NoteNota

No quite controles mediante programación durante el funcionamiento del controlador de eventos Shutdown del documento. Los elementos de la interfaz de usuario del documento dejan de estar disponibles cuando se produce el evento Shutdown. Si desea quitar controles antes de que se cierre la aplicación, agregue su código a otro controlador de eventos como BeforeClose o BeforeSave.

Elementos y controles host disponibles

A continuación se enumeran los elementos host y los controles host que están disponibles en las soluciones de Visual Studio Tools para Office.

Elementos host de Excel

Elementos host de Word

Elementos host de complemento

Controles Host de Excel

Controles Host de Word

Programar basándose en eventos de controles host

Una manera en que los controles host extienden los objetos de Office es agregando eventos. Por ejemplo, el objeto Microsoft.Office.Interop.Excel.Range de Excel y el objeto Microsoft.Office.Interop.Word.Bookmark de Word no tienen eventos, pero Visual Studio Tools para Office extiende estos objetos agregándoles eventos programables. Puede obtener acceso a estos eventos y escribir código basado en ellos de la misma manera que tiene acceso a los eventos de controles de formularios Windows Forms: a través de la lista desplegable de eventos en Visual Basic y la página de propiedades de eventos en C#. Para obtener más información, vea Tutorial: Programar basándose en los eventos de un control NamedRange.

NoteNota

No debe establecer la propiedad EnableEvents del objeto Application de Excel en false. Establecer esta propiedad en false impide que Excel active cualquier evento, incluidos los evento de los controles host.

Enlazar datos a los controles host

Los controles host también extienden los objetos de Office habilitando el enlace a datos. Los controles host tienen las mismas capacidades de enlace a datos que los controles de los formularios Windows Forms. Los controles host se pueden enlazar a orígenes de datos como conjuntos de datos y tablas de datos. Los controles host habilitan el enlace a datos simple o complejo. Para obtener más información, vea Tutorial: Enlazar una celda de una hoja de cálculo a un campo de una base de datos y Tutorial: Enlazar celdas a varias columnas en una tabla.

Enlace de datos sencillo

El enlace de datos simple existe cuando una propiedad de control está enlazada a un elemento de datos único, como un valor de una tabla de datos. Por ejemplo, el control NamedRange tiene una propiedad Value2 que se puede enlazar a un campo a un conjunto de datos. Cuando cambia el valor del campo del conjunto de datos, también cambia el valor del intervalo con nombre. Todos los controles host, salvo Microsoft.Office.Tools.Word.XMLNodes, admiten el enlace a datos simple. El control XMLNodes es una colección y por consiguiente no admite el enlace a datos.

Enlace de datos complejo

El enlace de datos complejo existe cuando una propiedad de un control está enlazada a más de un elemento de datos, como varias columnas de una tabla de datos. Por ejemplo, el control Microsoft.Office.Tools.Excel.ListObject tiene una propiedad DataSource que se puede enlazar a varias columnas de una tabla de datos. Todos los datos de la tabla de datos se muestran en el control Microsoft.Office.Tools.Excel.ListObject y, a medida que cambian los datos de la tabla de datos, también cambia el control Microsoft.Office.Tools.Excel.ListObject. El enlace de datos complejo sólo se admite en el control Microsoft.Office.Tools.Excel.ListObject.

Vea también

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft