Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se muestra cómo crear una personalización de nivel de documento que usa controles de contenido para crear contenido estructurado y reutilizable en una plantilla de Microsoft Office Word.
Se aplica a: La información de este tema se aplica a proyectos de nivel de documento para Word. Para obtener más información, vea Características disponibles por aplicación de Office y tipo de proyecto.
Word le permite crear una colección de elementos de documento reutilizables, denominados bloques de creación. En este tutorial se muestra cómo crear dos tablas como bloques de creación. Cada tabla contiene varios controles de contenido que pueden contener diferentes tipos de contenido, como texto sin formato o fechas. Una de las tablas contiene información sobre un empleado y la otra tabla contiene comentarios de los clientes.
Después de crear un documento a partir de la plantilla, puede agregar cualquiera de las tablas al documento mediante varios BuildingBlockGalleryContentControl objetos, que muestran los bloques de creación disponibles en la plantilla.
En este tutorial se muestran las siguientes tareas:
Crear tablas que contengan controles de contenido en una plantilla de Word en tiempo de diseño.
Rellenar un control de contenido de cuadro combinado y un control de contenido de lista desplegable mediante programación.
Impedir que los usuarios editen una tabla especificada.
Agregar tablas a la colección de bloques de creación de una plantilla.
Crear un control de contenido que muestre los bloques de creación disponibles en la plantilla.
Nota:
El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las instrucciones siguientes. La edición de Visual Studio que tiene y la configuración que usa determinan estos elementos. Para obtener más información, consulte Personalizar el IDE.
Prerrequisitos
Necesitará los componentes siguientes para completar este tutorial:
Edición de Visual Studio que incluye las herramientas de desarrollo de Microsoft Office. Para obtener más información, vea Configurar un equipo para desarrollar soluciones de Office.
Microsoft Word.
Crear un nuevo proyecto de plantilla de Word
Cree una plantilla de Word para que los usuarios puedan crear sus propias copias fácilmente.
Para crear un proyecto de plantilla de Word
Cree un proyecto de plantilla de Word con el nombre MyBuildingBlockTemplate. En el asistente, cree un nuevo documento en la solución. Para obtener más información, vea Cómo: Crear proyectos de Office en Visual Studio.
Visual Studio abre la nueva plantilla de Word en el diseñador y agrega el proyecto MyBuildingBlockTemplate al Explorador de soluciones.
Cree la tabla de empleados
Cree una tabla que contenga cuatro tipos diferentes de controles de contenido en los que el usuario pueda escribir información sobre un empleado.
Para crear la tabla de empleados
En la plantilla de Word hospedada en el diseñador de Visual Studio, en la cinta de opciones, haga clic en la pestaña Insertar .
En el grupo Tablas , haga clic en Tabla e inserte una tabla con dos columnas y cuatro filas.
Escriba texto en la primera columna para que se parezca a la columna siguiente:
Nombre del empleado Fecha de contratación Título Imagen Haga clic en la primera celda de la segunda columna (junto a Nombre del empleado).
En la cinta de opciones, haga clic en la pestaña Programador .
Nota:
Si la pestaña Programador no está visible, primero debe mostrarla. Para obtener más información, vea Cómo: Mostrar la pestaña programador en la cinta de opciones.
En el grupo Controles , haga clic en el botón Texto
para agregar un PlainTextContentControl elemento a la primera celda.Haga clic en la segunda celda de la segunda columna (junto a Fecha de contratación).
En el grupo Controles, haga clic en el botón Selector de fecha
para agregar un DatePickerContentControl a la segunda celda.Haga clic en la tercera celda de la segunda columna (junto a Título).
En el grupo Controles , haga clic en el botón Cuadro combinado
para agregar un ComboBoxContentControl elemento a la tercera celda.Haga clic en la última celda de la segunda columna (junto a Imagen).
En el grupo Controles, haga clic en el botón Imagen Control de Contenido
para agregar un PictureContentControl a la última celda.
Creación de la tabla de comentarios del cliente
Cree una tabla que contenga tres tipos diferentes de controles de contenido en los que el usuario puede escribir información de comentarios de los clientes.
Para crear la tabla de comentarios del cliente
En la plantilla de Word, haga clic en la línea después de la tabla employee que agregó anteriormente y presione Entrar para agregar un nuevo párrafo.
En la cinta de opciones, haga clic en la pestaña Insertar .
En el grupo Tablas , haga clic en Tabla e inserte una tabla con dos columnas y tres filas.
Escriba texto en la primera columna para que se parezca a la columna siguiente:
Nombre del cliente Clasificación de satisfacción Comentarios Haga clic en la primera celda de la segunda columna (junto a Nombre del cliente).
En la cinta de opciones, haga clic en la pestaña Programador .
En el grupo Controles , haga clic en el botón Texto
para agregar un PlainTextContentControl elemento a la primera celda.Haga clic en la segunda celda de la segunda columna (junto a Clasificación de satisfacción).
En el grupo Controles , haga clic en el botón Lista deDrop-Down
para agregar un DropDownListContentControl elemento a la segunda celda.Haga clic en la última celda de la segunda columna (junto a Comentarios).
En el grupo Controles , haga clic en el botón Texto enriquecido
para agregar un RichTextContentControl elemento a la última celda.
Rellenar el cuadro combinado y la lista desplegable mediante programación
Puede inicializar controles de contenido en tiempo de diseño mediante la ventana Propiedades de Visual Studio. También puede inicializarlos en tiempo de ejecución, lo que le permite establecer sus estados iniciales dinámicamente. Para este tutorial, use código para rellenar las entradas en ComboBoxContentControl y DropDownListContentControl en tiempo de ejecución para que pueda ver cómo funcionan estos objetos.
Para modificar la interfaz de usuario de los controles de contenido mediante programación
En el Explorador de soluciones, haga clic con el botón derecho en ThisDocument.cs o ThisDocument.vb y, a continuación, haga clic en Ver código.
Agregue el código siguiente a la
ThisDocumentclase . Este código declara varios objetos que usará más adelante en este tutorial.Agregue el código siguiente al
ThisDocument_Startupmétodo de laThisDocumentclase . Este código agrega entradas a ComboBoxContentControl y DropDownListContentControl en las tablas y establece el texto del marcador de posición que se muestra en cada uno de estos controles antes de que el usuario los edite.comboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own"; comboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0); comboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1); comboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2); dropDownListContentControl1.PlaceholderText = "Choose a rating (1 lowest, 3 highest)"; dropDownListContentControl1.DropDownListEntries.Add("1", "1", 0); dropDownListContentControl1.DropDownListEntries.Add("2", "2", 1); dropDownListContentControl1.DropDownListEntries.Add("3", "3", 2);
Impedir que los usuarios editen la tabla de empleados
Utiliza el GroupContentControl objeto que declaraste anteriormente para proteger la tabla de empleados. Después de proteger la tabla, los usuarios todavía pueden editar los controles de contenido de la tabla. Sin embargo, no pueden editar texto en la primera columna ni modificar la tabla de otras maneras, como agregar o eliminar filas y columnas. Para obtener más información sobre cómo usar un GroupContentControl para proteger una parte de un documento, vea Controles de contenido.
Para evitar que los usuarios editen la tabla de empleados
Agregue el código siguiente al
ThisDocument_Startupmétodo de laThisDocumentclase , después del código que agregó en el paso anterior. Este código impide que los usuarios editen la tabla employee colocando la tabla dentro del GroupContentControl objeto que declaró anteriormente.
Agrega las tablas a la colección de bloques de construcción
Agregue las tablas a una colección de bloques de creación de documentos en la plantilla para que los usuarios puedan insertar las tablas que ha creado en el documento. Para obtener más información sobre los bloques de creación de documentos, consulte Controles de contenido.
Para agregar las tablas a los bloques de creación de la plantilla
Agregue el código siguiente al
ThisDocument_Startupmétodo de laThisDocumentclase , después del código que agregó en el paso anterior. Este código agrega nuevos bloques de creación que contienen las tablas a la colección Microsoft.Office.Interop.Word.BuildingBlockEntries, que contiene todos los bloques de creación reutilizables de la plantilla. Los nuevos bloques de creación se definen en una nueva categoría denominada Información de Empleados y Clientes y se les asigna el tipo de bloqueMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.Word.Template template1 = this.AttachedTemplate as Word.Template; if (template1 != null) { object description = null; template1.BuildingBlockEntries.Add("Employee Table", Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", this.Tables[1].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent); template1.BuildingBlockEntries.Add("Customer Table", Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information", this.Tables[2].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent); }Agregue el código siguiente al
ThisDocument_Startupmétodo de laThisDocumentclase , después del código que agregó en el paso anterior. Este código elimina las tablas de la plantilla. Las tablas ya no son necesarias, ya que las ha agregado a la galería de bloques de creación reutilizables de la plantilla. El código coloca primero el documento en modo de diseño para que se pueda eliminar la tabla de empleados protegida.
Crear un control de contenido que muestre los bloques de creación
Cree un control de contenido que proporcione acceso a los bloques de creación (es decir, las tablas) que creó anteriormente. Los usuarios pueden hacer clic en este control para agregar las tablas al documento.
Para crear un control de contenido que muestre los bloques de creación
Agregue el código siguiente al
ThisDocument_Startupmétodo de laThisDocumentclase , después del código que agregó en el paso anterior. Este código inicializa el BuildingBlockGalleryContentControl objeto que declaró anteriormente. BuildingBlockGalleryContentControl muestra todos los bloques de construcción definidos en la categoría Información de Empleados y Clientes y que tienen el tipoMicrosoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1.buildingBlockControl1 = this.Controls.AddBuildingBlockGalleryContentControl( this.Paragraphs[1].Range, "buildingBlockControl1"); buildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information"; buildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1; buildingBlockControl1.PlaceholderText = "Choose your first building block"; buildingBlockControl2 = this.Controls.AddBuildingBlockGalleryContentControl( this.Paragraphs[2].Range, "buildingBlockControl2"); buildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information"; buildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1; buildingBlockControl2.PlaceholderText = "Choose your second building block";
Prueba del proyecto
Los usuarios pueden hacer clic en los controles de la galería de componentes del documento para insertar la tabla de empleados o la tabla de comentarios de clientes. Los usuarios pueden escribir o seleccionar respuestas en los controles de contenido de ambas tablas. Los usuarios pueden modificar otras partes de la tabla de comentarios del cliente, pero no deberían poder modificar otras partes de la tabla de empleados.
Para probar la tabla employee
Presione F5 para ejecutar el proyecto.
Haga clic en Elegir el primer bloque constructivo para mostrar el primer control de contenido de la galería de bloques constructivos.
Haga clic en la flecha desplegable situada junto al encabezado Galería personalizada 1 del control y seleccione Tabla de empleados.
Haga clic en la celda situada a la derecha de la celda Nombre del empleado y escriba un nombre.
Compruebe que solo puede agregar texto a esta celda. Permite PlainTextContentControl a los usuarios agregar solo texto, no otros tipos de contenido, como el arte o una tabla.
Haga clic en la celda situada a la derecha de la celda Fecha de contratación y seleccione una fecha en el selector de fechas.
Haga clic en la celda situada a la derecha de la celda Título y seleccione uno de los títulos de trabajo en el cuadro combinado.
Opcionalmente, escriba el nombre de un puesto que no está en la lista. Esto es posible porque permite ComboBoxContentControl a los usuarios seleccionar entre una lista de entradas o escribir sus propias entradas.
Haga clic en el icono de la celda situada a la derecha de la celda Imagen y vaya a una imagen para mostrarla.
Intente agregar filas o columnas a la tabla e intente eliminar filas y columnas de la tabla. Compruebe que no puede modificar la tabla. GroupContentControl le impide realizar modificaciones.
Para probar la tabla de comentarios del cliente
Haga clic en Elegir el segundo bloque de creación para mostrar el segundo control de contenido de la galería de bloques de creación.
Haga clic en la flecha desplegable situada junto al encabezado Galería personalizada 1 del control y seleccione Tabla de clientes.
Haga clic en la celda situada a la derecha de la celda Customer Name (Nombre del cliente ) y escriba un nombre.
Haga clic en la celda situada a la derecha de la celda Clasificación de satisfacción y seleccione una de las opciones disponibles.
Compruebe que no puede escribir su propia entrada. Permite DropDownListContentControl que los usuarios solo seleccionen de una lista de entradas.
Haga clic en la celda situada a la derecha de la celda Comentarios y escriba algunos comentarios.
Opcionalmente, agregue algún contenido que no sea texto, como el arte o una tabla insertada. Esto es posible porque RichTextContentControl permite a los usuarios agregar contenido distinto del texto.
Compruebe que puede agregar filas o columnas a la tabla y que puede eliminar filas y columnas de la tabla. Esto es posible porque usted no ha protegido la tabla al ponerla en un GroupContentControl.
Cierre la plantilla.
Pasos siguientes
Puede obtener más información sobre cómo usar controles de contenido de este tema:
- Enlace controles de contenido a fragmentos de XML, también denominados elementos XML personalizados, que se incrustan en un documento. Para obtener más información, vea Tutorial: Enlazar controles de contenido a elementos XML personalizados.
Contenido relacionado
- Automatizar Word mediante objetos extendidos
- Controles de contenido
- Cómo: Agregar controles de contenido a documentos de Word
- Protección de partes de documentos mediante controles de contenido
- Información general sobre los elementos de anfitrión y los controles de anfitrión
- Limitaciones programáticas de elementos y controles de host
- Agregar controles a documentos de Office en tiempo de ejecución