Compartir a través de


Tutorial: Actualizar un gráfico en un documento utilizando botones de opción

Actualización: noviembre 2007

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.

Tipo de proyecto

  • Proyectos de nivel de documento

Versión de Microsoft Office

  • Word 2007

  • Word 2003

Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto.

En este tutorial se muestra cómo utilizar los botones de opción 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.

Este tutorial ilustra 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 opción agregándolos a un control de usuario.

  • Cambiar el estilo de gráfico cuando se selecciona una opción.

Para considerar el resultado como un ejemplo finalizado, vea Ejemplo Word Controls.

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:

  • Visual Studio Tools para Office (componente opcional de Visual Studio 2008 Professional y Visual Studio Team System).

  • Microsoft Office Word 2003 o Microsoft Office Word 2007.

En este tutorial se usan los menús de Word 2003, pero en la cinta de opciones de Word 2007 están disponibles las mismas opciones.

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 Visual Studio para Office.

    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

En los proyectos de Word 2003, el menú Insertar de la barra de herramientas de Visual Studio contiene los comandos de Word para agregar un gráfico.

Para agregar un gráfico

  1. En el menú Insertar, haga clic en Objeto.

    Se abrirá el cuadro de diálogo Objeto.

    Nota:

    Si el menú Insertar no es visible, primero deberá hacer clic dentro del documento para que tenga el foco. Para obtener más información, vea Menús de Office en el entorno de Visual Studio.

  2. 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.

  3. 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.

  4. Haga clic con el botón secundario en el gráfico y, a continuación, haga clic en Formato de objeto.

  5. 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 opción 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

  1. Seleccione el proyecto Mis opciones de gráfico en el Explorador de soluciones.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  3. 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

  1. Si el control de usuario no está visible en el diseñador, haga doble clic en ChartOptions en el Explorador de soluciones.

  2. 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

    Nombre

    columnChart

    Texto

    Column Chart

  3. Agregue un segundo control RadioButton al control de usuario y cambie las siguientes propiedades.

    Propiedad

    Valor

    Nombre

    barChart

    Texto

    Bar Chart

  4. Agregue un tercer control RadioButton al control de usuario y cambie las siguientes propiedades.

    Propiedad

    Valor

    Nombre

    lineChart

    Texto

    Line Chart

  5. Agregue un cuarto control RadioButton al control de usuario y cambie las siguientes propiedades.

    Propiedad

    Valor

    Nombre

    areaBlockChart

    Texto

    Area Block Chart

Agregar referencias

Para tener acceso al gráfico desde el control de usuario en un documento, debe tener una referencia a la Biblioteca de objetos de Microsoft Graph 11.0 en el proyecto.

Para agregar una referencia a la Biblioteca de objetos de Microsoft Graph 11.0

  1. Haga clic en la opción Agregar referencia del menú Proyecto.

    Aparecerá el cuadro de diálogo Agregar referencia.

  2. Haga clic en la ficha COM.

  3. Seleccione la Biblioteca de objetos de Microsoft Graph 11.0 de la lista Nombre de componente y luego haga clic en Aceptar.

Cambiar el estilo del gráfico cuando se selecciona un botón de opción

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 opción.

Para crear un evento y una propiedad en un control de usuario

  1. 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.

  2. 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 opción

  1. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de opción 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);
            }
        }
    }
    
  2. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de opción 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);
            }
        }
    }
    
  3. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de opción 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);
            }
        }
    }
    
  4. Establezca el tipo de gráfico en el controlador de eventos CheckedChanged del botón de opción 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);
            }
        }
    }
    
  5. En C#, debe agregar controladores de eventos para los botones de opción. 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 Visual Studio Tools para 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

  1. En el menú Generar, haga clic en Generar solución.

    El control de usuario ChartOptions se agrega al Cuadro de herramientas.

  2. 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.

  3. 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

  1. 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
            'first object is the runtime storage control
            Dim index As Object = 2
            Dim shape As Word.Shape = Me.Shapes.Item(index)
    
            '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
        {
            //first object is the runtime storage control
            object index = 2;
            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);
        }
    }
    
  2. 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 opción.

Para probar el documento

  1. Presione F5 para ejecutar el proyecto.

  2. Seleccione distintos botones de opción.

  3. 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:

Vea también

Conceptos

Tutoriales para Word

Utilizar controles de formularios Windows Forms en documentos de Word.

Limitaciones de los controles de formularios Windows Forms en los documentos de Office

Otros recursos

Ejemplos y tutoriales del desarrollo de Office