Procedura dettagliata: creazione di uno smart tag tramite una personalizzazione a livello di documento

In questa procedura dettagliata verrà illustrata la creazione di uno smart tag in una personalizzazione a livello di documento per Word. Lo smart tag riconosce stringhe di temperatura Fahrenheit. Lo smart tag include un'azione che converte il valore della temperatura in Celsius e sostituisce il testo riconosciuto con una stringa di temperatura Celsius formattata.

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

Per eseguire questo smart tag, gli utenti finali devono abilitare gli smart tag in Word. Per ulteriori informazioni, vedere Procedura: abilitare gli smart tag in Word ed Excel.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Creazione di uno smart tag che riconosca un'espressione regolare.

  • Creazione di un'azione che recuperi i dati dallo smart tag e modifichi il testo riconosciuto dallo smart tag.

Nota

Il computer potrebbe mostrare nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio in uso e le impostazioni utilizzate determinano questi elementi. Per ulteriori informazioni, vedere Gestione delle impostazioni.

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.

  • .NET Framework 3.5.

Nota

Se il progetto è destinato a .NET Framework 4, è necessario scrivere codice diverso per creare smart tag e azioni. Per ulteriori informazioni, vedere Architettura degli smart tag.

Creazione di un nuovo progetto

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

Per creare un nuovo progetto

Il nuovo documento di Word verrà aperto nella finestra di progettazione di Visual Studio e il progetto My Smart Tag verrà aggiunto in Esplora soluzioni.

Configurazione del progetto

Per il progetto è necessario configurare un riferimento alla DLL dello smart tag e utilizzare espressioni regolari.

Per configurare il progetto

  1. Scegliere Aggiungi riferimento dal menu Progetto.

  2. Nella scheda .NET selezionare Microsoft.Office.Interop.SmartTag e fare clic su OK. Selezionare la versione 12.0.0.0 dell'assembly.

  3. In Esplora soluzioni fare clic con il pulsante destro del mouse su ThisDocument.vb (in Visual Basic) oppure su ThisDocument.cs (in C#), quindi scegliere Visualizza codice.

  4. Aggiungere le seguenti righe di codice all'inizio del file.

    Imports System.Text.RegularExpressions
    
    using System.Text.RegularExpressions;
    

Creazione dello smart tag

Per abilitare lo smart tag per la ricerca e la conversione delle stringhe della temperatura Fahrenheit, aggiungere all'elenco dei termini un'espressione regolare riconosciuta dallo smart tag e creare un'azione che sarà disponibile quando l'utente farà clic sullo smart tag.

Per creare lo smart tag

  1. Sostituire il gestore eventi ThisDocument_Startup nella classe ThisDocument con il codice riportato di seguito. Il codice consente di creare un oggetto SmartTag che rappresenta lo smart tag e di aggiungere all'elenco dei termini un'espressione regolare riconosciuta dallo smart tag.

    WithEvents action1 As Microsoft.Office.Tools.Word.Action
    
    Private Sub ThisDocument_Startup(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Me.Startup
    
        'Use the following line of code in projects that target the .NET Framework 4.
        Dim smartTag1 As Microsoft.Office.Tools.Word.SmartTag = _
            Globals.Factory.CreateSmartTag( _
           "www.microsoft.com/Demo#DemoSmartTag", _
           "Demonstration Smart Tag")
    
        'In projects that target the .NET Framework 3.5, use the following line of code.
        'Dim smartTag1 As New Microsoft.Office.Tools.Word.SmartTag( _
        '   "www.microsoft.com/Demo#DemoSmartTag", _
        '  "Demonstration Smart Tag")
    
        smartTag1.Expressions.Add( _
            New Regex("(?'number'[+-]?\b[0-9]+)?\s?(F|f)\b"))
    
    private Microsoft.Office.Tools.Word.Action action1;
    
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        // Use the following line of code in projects that target the .NET Framework 4.
        Microsoft.Office.Tools.Word.SmartTag smartTag1 =
            Globals.Factory.CreateSmartTag(
            "www.microsoft.com/Demo#DemoSmartTag",
            "Demonstration Smart Tag");
    
        // In projects that target the .NET Framework 3.5, use the following line of code.
        //Microsoft.Office.Tools.Word.SmartTag smartTag1 =
        //  new Microsoft.Office.Tools.Word.SmartTag(
        //  "www.microsoft.com/Demo#DemoSmartTag",
        //  "Demonstration Smart Tag");
    
        smartTag1.Expressions.Add(new Regex(
            @"(?'number'[+-]?\b[0-9]+)�?\s?(F|f)\b"));
    
  2. Creare una nuovo oggetto Action e aggiungerlo alla proprietà Actions dello smart tag. L'oggetto Action rappresenta un elemento sul quale l'utente può fare clic nel menu Smart tag.

    'Use the following line of code in projects that target the .NET Framework 4.
    action1 = Globals.Factory.CreateAction( _
        "Convert to Celsius")
    
    'In projects that target the .NET Framework 3.5, use the following line of code.
    'action1 = New Microsoft.Office.Tools.Word.Action( _
    '    "Convert to Celsius")
    
    smartTag1.Actions = _
        New Microsoft.Office.Tools.Word.Action() {action1}
    
    
    // Use the following line of code in projects that target the .NET Framework 4.
    action1 = Globals.Factory.CreateAction(
        "Convert to Celsius");
    
    // In projects that target the .NET Framework 3.5, use the following line of code.
    //action1 = new Microsoft.Office.Tools.Word.Action(
    //    "Convert to Celsius");
    
    
    
    smartTag1.Actions = new
        Microsoft.Office.Tools.Word.Action[] {action1};
    
  3. Associare lo smart tag al documento aggiungendo SmartTag alla proprietà VstoSmartTags. Nel linguaggio C# associare un gestore eventi all'evento Click dell'azione.

        Me.VstoSmartTags.Add(smartTag1)
    End Sub
    
        this.VstoSmartTags.Add(smartTag1);
    
        action1.Click += new
            Microsoft.Office.Tools.Word.ActionClickEventHandler(
            action1_Click);
    }
    

Creazione di un gestore eventi per l'azione

Il gestore eventi recupera il valore di temperatura Fahrenheit dal numero di chiave, contenuto nell'elenco proprietà dello smart tag. Il valore di temperatura Fahrenheit viene quindi convertito in Celsius e la stringa riconosciuta viene sostituita.

Nell'esempio il numero di chiave identifica un gruppo acquisito dall'espressione regolare assegnata allo smart tag. Per ulteriori informazioni sugli elenchi proprietà e sulle espressioni regolari negli smart tag, vedere Architettura degli smart tag.

Per creare il gestore eventi

  • Copiare il codice riportato di seguito nella classe ThisDocument:

    Private Sub action1_Click(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
        Handles action1.Click
    
        Dim value As String = e.Properties.Read("number")
        Dim fahrenheit As Double = System.Convert.ToDouble(value)
        Dim celsius As Integer = Fix(fahrenheit - 32) * 5 / 9
        e.Range.Text = celsius.ToString() + "C"
    End Sub
    
    void action1_Click(object sender,
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        string value = e.Properties.get_Read("number");
        double fahrenheit = System.Convert.ToDouble(value);
        int celsius = (int)(fahrenheit - 32) * 5 / 9;
        e.Range.Text = celsius.ToString() + "�C";
    }
    

Verifica dell'applicazione

A questo punto è possibile verificare il documento per accertarsi che lo smart tag esegua correttamente la conversione delle temperature Fahrenheit in Celsius.

Per verificare la cartella di lavoro

  1. In Word abilitare gli smart tag.

    Per ulteriori informazioni, vedere Procedura: abilitare gli smart tag in Word ed Excel.

  2. Premere F5 per eseguire il progetto.

  3. Digitare una stringa conforme all'espressione regolare aggiunta in precedenza allo smart tag, ad esempio 60F, 60° F oppure 60 F.

    Nota

    Per digitare il simbolo del grado (°), tenere premuto ALT e digitare 248.

  4. Fare clic sull'icona di smart tag visualizzata sulla stringa riconosciuta, quindi fare clic su Convert to Celsius.

  5. Verificare che la stringa originale sia sostituita con la nuova stringa contenente la temperatura in Celsius.

Vedere anche

Attività

Procedura: abilitare gli smart tag in Word ed Excel

Procedura: aggiungere smart tag ai documenti di Word

Procedura: aggiungere smart tag a cartelle di lavoro di Excel

Procedura: creare smart tag con sistemi di riconoscimento personalizzati in Word e .NET Framework 3.5

Procedura: creare smart tag con sistemi di riconoscimento personalizzati in Excel e .NET Framework 3.5

Procedura dettagliata: creazione di uno smart tag tramite un componente aggiuntivo a livello di applicazione

Concetti

Architettura degli smart tag

Altre risorse

Cenni preliminari sugli smart tag