lunedì 19 maggio 2025

C# creazione di un task pane in .Net 9 con VSTO per Microsoft Word

Introduzione

In questo articolo vedremo come creare un task panel con la tecnologia .Net 9, tramite il linguaggio di programmazione C# ed il modello VSTO.
Il componente aggiuntivo che verrà creato permetterà di visualizzare sulla destra del programma di video scrittura più conosciuto al mondo, Microsoft Word, un panellino con una scritta, il tutto come mostrato in figura 1.


creazione taskpanel in .Net e VSTO


Figura 1 – Il panello laterale che verrà creato



Creazione del progetto

Tramite l’ambiente di sviluppo Visual Studio 2022 Community, si crea un nuovo progetto tramite il linguaggio C#, in particolare per Microsoft Office, scegliendo come progetto “Componente aggiuntivo VSTO per Word”, il tutto come in figura 2.



creazione taskpanel in .Net e VSTO
Figura 2  - La scelta del tipo del progetto.

Dopo aver scelto il progetto, facciamo click sul pulsante “Avanti”, in modo che passiamo alla scelta della versione del Framework, selezioniamo l’ultima versione, nel momento in cui stiamo scrivendo l’articolo la versione è la 4.8.1, al nome e percorso del progetto in cui salvare il componente.
Impostiamo il nome al nostro progetto, e facciamo click sul pulsante “Crea”, in questo modo verrà creato il progetto.
Una volta creato il progetto, occorre creare il pannello personalizzato, in particolare, visualizzeremo un controllo personalizzato, detto “UserControl”, che per coloro che programmano in ambito Windows Application, già conoscono.
Dalla finestra “Esplora soluzione”, facciamo click sul nome del progetto con il testo destro, e dal menu che viene visualizzato, selezioniamo la voce “Controllo utente (Windows Forms)”, il tutto come mostrato in figura 3. 



creazione taskpanel in .Net e VSTO
Figura 3 – La scelta del controllo utente



Dalla finestra che viene aperta, impostiamo il nome con il valore “PannelloPersonalizzato.cs”, e facciamo click sul pulsante “Aggiungi”, in questo modo verrà creato il controllo utente.
Aggiungiamo al controllo appena inserito un controllo di tipo Label, e nella proprietà “Text”, impostiamo il valore “PanelloPersonalizzato”, il tutto come mostrato in figura 4.



creazione taskpanel in .Net e VSTO
Figura 4 – Il pannello personalizzato

Stesura del codice

Terminata la creazione del progetto e l’aggiunta di un controllo personalizzato, non resta che scrivere il codice.
Facciamo doppio click sul file “ThisAddIn.cs” in modo che passiamo in visualizzazione codice nei vari eventi.


In alto, sopra nella dichiarazione dello spazio dei nomi, inseriamo lo spazio dei nomi riguardante i tools di Office, di seguito si riporta il frammento di codice delle suddette operazioni.


C#

using Microsoft.Office.Tools;

 


A livello di variabile globale, dopo la dichiarazione di classe, scriviamo la dichiarazione di un oggetto   di tipo “CustomTaskPanel”, il tutto come riportato qui di seguito.


C#

private CustomTaskPane ctpTaskPanelPersonalizzato;


Questa variabile ci permette di gestire il taskpanel, in particolare aggiungere al documento “Word” il pannello personalizzato.
Nell’evento Startup, dobbiamo aggiungere il riferimento al controllo personalizzato in precedenza, che sarà usato come Task Panel, e tramite l’oggetto di tipo “CustomTaskPanel” creato a livello globale, lo inseriamo nel documento word, impostando la proprietà visibile a true.
Di seguito si riporta il frammento di codice delle suddette operazioni.


C#

private void ThisAddIn_Startup(object sender, System.EventArgs e)

{

    //Crea un'istanza del controllo creato

    var taskPanelPersonalizzato = new    PannelloPersonalizzato();

    // Aggiungi il CustomTaskPane

    ctpTaskPanelPersonalizzato = this.CustomTaskPanes.Add(taskPanelPersonalizzato, "Pannello Attività Personalizzato");

    //Mostra il pannello

    ctpTaskPanelPersonalizzato.Visible = true;

           

}


Si riporta il codice completo, comprensivo del codice di default inserito durante la generazione del progetto.

C#

using Microsoft.Office.Tools;

 

 

namespace WordAddInDemo

{

    public partial class ThisAddIn

    {

        private CustomTaskPane ctpTaskPanelPersonalizzato;

        private void ThisAddIn_Startup(object sender, System.EventArgs e)

        {

            //Crea un'istanza del controllo creato

            var taskPanelPersonalizzato = new    PannelloPersonalizzato();

            // Aggiungi il CustomTaskPane

            ctpTaskPanelPersonalizzato = this.CustomTaskPanes.Add(taskPanelPersonalizzato, "Pannello Attività Personalizzato");

            //Mostra il pannello

            ctpTaskPanelPersonalizzato.Visible = true;

         

        }

 

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)

        {

             

        }

 

        #region Codice generato da VSTO

 

        /// <summary>

        /// Metodo necessario per il supporto della finestra di progettazione. Non modificare

        /// il contenuto del metodo con l'editor di codice.

        /// </summary>

        private void InternalStartup()

        {

            this.Startup += new System.EventHandler(ThisAddIn_Startup);

            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);

        }

       

        #endregion

    }

}

 



Questo codice permette all’avvio del documento di Microsoft Word, di aprire il taskpanel personalizzato.



Conclusioni

L’articolo ha voluto illustrare al lettore, la possibilità di personalizzare il programma di video scrittura più usato al mondo, Microsoft Word, aggiungendo un pannello personalizzato, un task panel come viene definito tecnicamente, per migliorare l’operativo della videoscrittura.
Le potenzialità offerte dalla tecnologia .Net e da VSTO, offrono al programmatore, la possibilità di estendere il pacchetto Microsoft Office, con funzionalità anche complesso, scrivendo poche righe di codice.

Nessun commento: