Tutorial: Actualizar un gráfico en un documento utilizando botones de radio
En este tutorial se muestra cómo utilizar los botones de radio en una personalización en el nivel del documento para que Microsoft Office Word ofrezca a los usuarios la opción de seleccionar distintos tipos de gráfico en el documento.
Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
En este tutorial se muestran las tareas siguientes:
Agregar un gráfico al documento en un proyecto en el nivel del documento en tiempo de diseño.
Agrupar los botones de radio agregándolos a un control de usuario.
Cambiar el estilo de gráfico cuando se selecciona una opción.
Para consultar el resultado como ejemplo completo, vea el Ejemplo Word Controls en Ejemplos y tutoriales del desarrollo de Office.
Nota
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
-
Una edición de Visual Studio 2010 que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea [Configurar un equipo para desarrollar soluciones de Office](bb398242\(v=vs.100\).md).
- Word 2007 o Word 2010.
Crear el proyecto
El primer paso es crear el proyecto de documento de Word.
Para crear un nuevo proyecto
Cree un proyecto de documento de Word con el nombre Mis opciones de gráfico. En el asistente, seleccione Crear un nuevo documento. Para obtener más información, consulte Cómo: Crear proyectos de Office en Visual Studio.
Visual Studio abre el nuevo documento de Word en el diseñador y agrega el proyecto Mis opciones de gráfico al Explorador de soluciones.
Agregar un gráfico al documento
Para agregar un gráfico
En el documento de Word que se hospeda en el diseñador de Visual Studio, en la cinta de opciones, haga clic en la pestaña Insertar.
En el grupo Texto, haga clic en el botón de lista desplegable Insertar objeto y haga clic en Objeto.
Se abrirá el cuadro de diálogo Objeto.
En la lista Tipo de objeto de la ficha Crear nuevo, seleccione Gráfico de Microsoft Graph y, a continuación, haga clic en Aceptar.
Se agrega un gráfico al documento en el punto de inserción y aparece la ventana Hoja de datos con algunos datos predeterminados.
Cierre la ventana Hoja de datos para aceptar los valores predeterminados del gráfico y haga clic dentro del documento para mover el foco fuera del gráfico.
Haga clic con el botón secundario en el gráfico y, a continuación, haga clic en Formato de objeto.
En la ficha Diseño del cuadro de diálogo Formato de objeto, seleccione Cuadrado y haga clic en Aceptar.
Agregar un control de usuario al proyecto
De forma predeterminada, los botones de radio de un documento no se excluyen mutuamente. Puede hacer que funcionen correctamente agregándolos a un control de usuario y escribiendo a continuación el código para controlar la selección.
Para agregar un control de usuario
Seleccione el proyecto Mis opciones de gráfico en el Explorador de soluciones.
En el menú Proyecto, haga clic en Agregar nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, haga clic en Control de usuario, asigne al control el nombre ChartOptions y haga clic en Agregar.
Para agregar controles de formularios Windows Forms al control de usuario
Si el control de usuario no está visible en el diseñador, haga doble clic en ChartOptions en el Explorador de soluciones.
Desde la ficha Controles comunes del Cuadro de herramientas, arrastre el primer control RadioButton hasta el control de usuario y cambie las siguientes propiedades.
Propiedad
Valor
Name
columnChart
Text
Gráfico de columnas
Agregue un segundo control RadioButton al control de usuario y cambie las siguientes propiedades.
Propiedad
Valor
Name
barChart
Text
Gráfico de barras
Agregue un tercer control RadioButton al control de usuario y cambie las siguientes propiedades.
Propiedad
Valor
Name
lineChart
Text
Gráfico de líneas
Agregue un cuarto control RadioButton al control de usuario y cambie las siguientes propiedades.
Propiedad
Valor
Name
areaBlockChart
Text
Gráfico de bloques de áreas
Agregar referencias
Para tener acceso al gráfico desde el control de usuario en un documento, debe tener una referencia al ensamblado Microsoft.Office.Interop.Graph en el proyecto.
Para agregar una referencia al ensamblado Microsoft.Office.Interop.Graph
Haga clic en la opción Agregar referencia del menú Proyecto.
Aparecerá el cuadro de diálogo Agregar referencia.
En la pestaña .NET, seleccione Microsoft.Office.Interop.Graph y haga clic en Aceptar. Si el proyecto está destinado a Word 2007, seleccione la versión 12.0.0.0 del ensamblado; si el proyecto está destinado a Word 2010, seleccione la versión 14.0.0.0.
Cambiar el estilo del gráfico cuando se selecciona un botón de radio
Para que los botones funcionen correctamente, cree un evento público en el control de usuario, agregue una propiedad para establecer el tipo de selección y cree un procedimiento para el evento CheckedChanged de cada uno de los botones de radio.
Para crear un evento y una propiedad en un control de usuario
En el Explorador de soluciones, haga clic con el botón secundario en el control de usuario y, a continuación, haga clic en Ver código.
Agregue código para crear un evento SelectionChanged y la propiedad Selection a la clase ChartOptions.
Public Event SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Private selectedType As Microsoft.Office.Interop.Graph.XlChartType = _ Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered Public Property Selection() As Microsoft.Office.Interop.Graph.XlChartType Get Return Me.selectedType End Get Set(ByVal value As Microsoft.Office.Interop.Graph.XlChartType) Me.selectedType = value End Set End Property
public event EventHandler SelectionChanged; private Microsoft.Office.Interop.Graph.XlChartType selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered; public Microsoft.Office.Interop.Graph.XlChartType Selection { get { return this.selectedType; } set { this.selectedType = value; } }
Para controlar el evento CheckedChange de los botones de radio
Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio areaBlockChart y después provoque el evento.
Private Sub areaBlockChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles areaBlockChart.CheckedChanged If (CType(sender, RadioButton).Checked) Then Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlAreaStacked RaiseEvent SelectionChanged(Me, EventArgs.Empty) End If End Sub
private void areaBlockChart_CheckedChanged(object sender, EventArgs e) { if (((RadioButton)sender).Checked) { this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlAreaStacked; if (this.SelectionChanged != null) { this.SelectionChanged(this, EventArgs.Empty); } } }
Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio barChart.
Private Sub barChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles barChart.CheckedChanged If (CType(sender, RadioButton).Checked) Then Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlBarClustered RaiseEvent SelectionChanged(Me, EventArgs.Empty) End If End Sub
private void barChart_CheckedChanged(object sender, EventArgs e) { if (((RadioButton)sender).Checked) { this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlBarClustered; if (this.SelectionChanged != null) { this.SelectionChanged(this, EventArgs.Empty); } } }
Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio columnChart.
Private Sub columnChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles columnChart.CheckedChanged If (CType(sender, RadioButton).Checked) Then Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered RaiseEvent SelectionChanged(Me, EventArgs.Empty) End If End Sub
private void columnChart_CheckedChanged(object sender, EventArgs e) { if (((RadioButton)sender).Checked) { this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered; if (this.SelectionChanged != null) { this.SelectionChanged(this, EventArgs.Empty); } } }
Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de radio lineChart.
Private Sub lineChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles lineChart.CheckedChanged If (CType(sender, RadioButton).Checked) Then Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlLineMarkers RaiseEvent SelectionChanged(Me, EventArgs.Empty) End If End Sub
private void lineChart_CheckedChanged(object sender, EventArgs e) { if (((RadioButton)sender).Checked) { this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlLineMarkers; if (this.SelectionChanged != null) { this.SelectionChanged(this, EventArgs.Empty); } } }
En C#, debe agregar controladores de eventos para los botones de radio. Puede agregar el código al constructor ChartOptions, bajo la llamada a InitializeComponent. Para obtener más información sobre cómo crear controladores de eventos, vea Cómo: Crear controladores de eventos en proyectos de Office.
public ChartOptions() { InitializeComponent(); areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged); barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged); columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged); lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged); }
Agregar el control de usuario al documento
Cuando genera la solución, el nuevo control de usuario se agrega automáticamente al Cuadro de herramientas. Puede arrastrar el control desde el Cuadro de herramientas al documento.
Para agregar el control de usuario al documento
En el menú Generar, haga clic en Generar solución.
El control de usuario ChartOptions se agrega al Cuadro de herramientas.
En el Explorador de soluciones, haga clic con el botón secundario en ThisDocument.vb o en ThisDocument.cs y, a continuación, haga clic en Diseñador de vistas.
Arrastre el control ChartOptions desde el Cuadro de herramientas hasta el documento.
Se agregará al proyecto un nuevo control con el nombre ChartOptions1.
Cambiar el tipo de gráfico
Cree un controlador de eventos para cambiar el tipo de gráfico según la opción que está seleccionada en el control de usuario.
Para cambiar el tipo de gráfico que se muestra en el documento
Agregue el siguiente controlador de eventos a la clase ThisDocument.
Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles ChartOptions1.SelectionChanged Try Dim shape As Word.Shape = Me.Shapes.Item(1) ' Activate the shape. shape.Activate() Dim dataChart As Graph.Chart = CType(shape.OLEFormat.Object, Graph.Chart) dataChart.ChartType = Me.ChartOptions1.Selection ' Deactivate the shape. Me.ChartOptions1.Select() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
private void ChartOptions1_SelectionChanged(object sender, EventArgs e) { try { object index = 1; Word.Shape shape = this.Shapes.get_Item(ref index); // Activate the shape. shape.Activate(); Microsoft.Office.Interop.Graph.Chart dataChart = (Microsoft.Office.Interop.Graph.Chart)shape.OLEFormat.Object; dataChart.ChartType = this.ChartOptions1.Selection; // Deactivate the shape. this.ChartOptions1.Select(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
En C#, debe agregar un controlador de eventos para el control de usuario al evento Startup.
this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
Probar la aplicación
Ahora puede probar el documento para asegurarse de que el estilo de gráfico se actualiza correctamente al seleccionar un botón de radio.
Para probar el documento
Presione F5 para ejecutar el proyecto.
Seleccione distintos botones de radio.
Confirme que el estilo de gráfico cambia y coincide con la selección.
Pasos siguientes
Éstas son algunas de las tareas que pueden venir a continuación:
Utilizar un botón para rellenar un cuadro de texto. Para obtener más información, vea Tutorial: Mostrar texto en un cuadro de texto en un documento utilizando un botón.
Cambiar el formato seleccionando un estilo en un cuadro combinado. Para obtener más información, vea Tutorial: Cambiar el formato de un documento utilizando controles CheckBox.
Vea también
Conceptos
Utilizar controles de formularios Windows Forms en documentos de Word.
Limitaciones de los controles de formularios Windows Forms en los documentos de Office