Procedura dettagliata: aggiornamento di un grafico in un documento mediante pulsanti di opzione

In questa procedura dettagliata viene illustrato come utilizzare i pulsanti di opzione in una personalizzazione a livello di documento per Microsoft Office Word al fine di fornire agli utenti la possibilità di selezionare gli stili dei grafici per il documento.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di documento per Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Aggiunta di un grafico al documento di un progetto a livello di documento in fase di progettazione.

  • Raggruppamento dei pulsanti di opzione aggiungendoli a un controllo utente.

  • Modifica dello stile del grafico alla selezione di un'opzione.

Per visualizzare il risultato come esempio completo, vedere l'esempio relativo ai controlli di Word in Procedure dettagliate ed esempi di sviluppo di applicazioni per Microsoft Office.

Nota

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

-

Una versione di Visual Studio 2010 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.100\).md).
  • Word 2007 o Word 2010.

Creazione del progetto

Il primo passaggio consiste nella creazione di un progetto Documento di Word.

Per creare un nuovo progetto

  • Creare un progetto Documento di Word con il nome My Chart Options. Nella procedura guidata, scegliere Crea un nuovo documento. Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

    Il nuovo documento di Word viene aperto nella finestra di progettazione di Visual Studio e il progetto My Chart Options viene aggiunto in Esplora soluzioni.

Aggiunta di un grafico al documento

Per aggiungere un grafico

  1. Nel documento di Word contenuto nella finestra di progettazione di Visual Studio, fare clic sulla scheda Inserisci nella barra multifunzione.

  2. Nel gruppo Testo fare clic sul pulsante a discesa Inserisci oggetto e fare clic su Oggetto.

    Verrà visualizzata la finestra di dialogo Oggetto.

  3. Dall'elenco Tipo oggetto della scheda Crea nuovo oggetto selezionare Grafico di Microsoft Graph, quindi scegliere OK.

    Un grafico verrà aggiunto al documento in corrispondenza del punto di inserimento e la finestra Foglio dati verrà visualizzata con alcuni dati predefiniti.

  4. Chiudere la finestra Foglio dati per accettare i valori predefiniti del grafico e fare clic all'interno del documento per spostare l'attivazione al di fuori del grafico.

  5. Fare clic con il pulsante destro del mouse sul grafico e scegliere Formato oggetto.

  6. Nella scheda Layout della finestra di dialogo Formato oggetto, selezionare Incorniciato e fare clic su OK.

Aggiunta di un controllo utente al progetto

Per impostazione predefinita, i pulsanti di opzione su un documento non si escludono a vicenda. È possibile farli funzionare correttamente aggiungendoli a un controllo utente e scrivendo quindi il codice per controllare la selezione.

Per aggiungere un controllo utente

  1. Selezionare il progetto My Chart Options in Esplora soluzioni.

  2. Scegliere Aggiungi nuovo elemento dal menu Progetto.

  3. Nella finestra di dialogo Aggiungi nuovo elemento, selezionare Controllo utente, specificare il nome ChartOptions per il controllo e scegliere Aggiungi.

Per aggiungere controlli Windows Form al controllo utente

  1. Se il controllo utente non è visibile nella finestra di progettazione, fare doppio clic su ChartOptions in Esplora soluzioni.

  2. Trascinare sul controllo utente il primo controllo RadioButton dalla scheda Controlli comuni della Casella degli strumenti e modificare le seguenti proprietà:

    Proprietà

    Valore

    Nome

    columnChart

    Text

    Istogramma

  3. Aggiungere un secondo pulsante di opzione RadioButton al controllo utente e modificare le seguenti proprietà.

    Proprietà

    Valore

    Nome

    barChart

    Text

    Grafico a barre

  4. Aggiungere un terzo RadioButton al controllo utente e modificare le seguenti proprietà.

    Proprietà

    Valore

    Nome

    lineChart

    Text

    Grafico a linee

  5. Aggiungere un quarto RadioButton al controllo utente e modificare le seguenti proprietà.

    Proprietà

    Valore

    Nome

    areaBlockChart

    Text

    Grafico ad area

Aggiunta di riferimenti

Per accedere al grafico dal controllo utente in un documento, è necessario disporre di un riferimento all'assembly Microsoft.Office.Interop.Graph all'interno del progetto.

Per aggiungere un riferimento all'assembly Microsoft.Office.Interop.Graph

  1. Scegliere Aggiungi riferimento dal menu Progetto.

    Verrà visualizzata la finestra di dialogo Aggiungi riferimento.

  2. Nella scheda .NET selezionare Microsoft.Office.Interop.Graph e fare clic su OK. Se il progetto viene destinato a Word 2007, selezionare la versione 12.0.0.0 dell'assembly; se il progetto è invece destinato a Word 2010, selezionare la versione 14.0.0.0.

Modifica dello stile del grafico alla selezione di un pulsante di opzione

Per far funzionare i pulsanti correttamente, verrà creato un evento pubblico nel controllo utente, verrà aggiunta una proprietà per impostare il tipo di selezione e verrà creata una routine per l'evento CheckedChanged di ciascun pulsante di opzione.

Per creare un evento e una proprietà in un controllo utente

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul controllo utente e scegliere Visualizza codice.

  2. Aggiungere il codice per la creazione di un evento SelectionChanged e della proprietà Selection alla classe 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;
        }
    }
    

Per gestire l'evento CheckedChange dei pulsanti di opzione

  1. Impostare il tipo di grafico nel gestore eventi CheckedChanged del pulsante di opzione areaBlockChart e generare l'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. Impostare il tipo di grafico nel gestore eventi CheckedChanged del pulsante di opzione 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. Impostare il tipo di grafico nel gestore eventi CheckedChanged del pulsante di opzione 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. Impostare il tipo di grafico nel gestore eventi CheckedChanged del pulsante di opzione 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. In C# è necessario aggiungere gestori eventi per i pulsanti di opzione. È possibile aggiungere questo codice al costruttore ChartOptions, dopo la chiamata a InitializeComponent. Per ulteriori informazioni sulla creazione di gestori eventi, vedere Procedura: creare gestori eventi in progetti di 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);
    }
    

Aggiunta del controllo utente al documento

Quando viene compilata la soluzione, il nuovo controllo utente viene aggiunto automaticamente alla Casella degli strumenti. È possibile trascinare il controllo dalla Casella degli strumenti nel documento.

Per aggiungere il controllo utente al documento

  1. Scegliere Compila soluzione dal menu Compila.

    Il controllo ChartOptions verrà aggiunto alla Casella degli strumenti.

  2. In Esplora soluzioni, fare clic con il pulsante destro del mouse su ThisDocument.vb o ThisDocument.cs e scegliere Visualizza finestra di progettazione.

  3. Trascinare il controllo ChartOptions dalla Casella degli strumenti nel documento.

    Un nuovo controllo denominato ChartOptions1 verrà aggiunto al progetto.

Modifica del tipo di grafico

Creare un gestore eventi per modificare il tipo di grafico in base all'opzione selezionata nel controllo utente.

Per modificare il tipo di grafico visualizzato nel documento

  1. Aggiungere il seguente gestore eventi alla classe 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);
        }
    }
    
  2. In C# è necessario aggiungere un gestore eventi per il controllo utente all'evento Startup.

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

Verifica dell'applicazione

È ora possibile testare il documento per assicurarsi che lo stile del grafico venga aggiornato correttamente quando si sceglie un pulsante di opzione.

Per eseguire il test del documento

  1. Premere F5 per eseguire il progetto.

  2. Selezionare vari pulsanti di opzione.

  3. Verificare che lo stile del grafico venga modificato in base alla selezione.

Passaggi successivi

Di seguito sono elencate alcune procedure che potrebbero essere necessarie per estendere il progetto:

Vedere anche

Concetti

Procedure dettagliate con Word

Utilizzo di controlli Windows Form nei documenti di Word

Limitazioni dei controlli Windows Form nei documenti di Office

Altre risorse

Procedure dettagliate ed esempi di sviluppo di applicazioni per Microsoft Office