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
Creare un progetto documento di Word 2007 con il nome My Smart Tag utilizzando Visual Basic o C#. 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 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
Scegliere Aggiungi riferimento dal menu Progetto.
Nella scheda .NET selezionare Microsoft.Office.Interop.SmartTag e fare clic su OK. Selezionare la versione 12.0.0.0 dell'assembly.
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.
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
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"));
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};
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
In Word abilitare gli smart tag.
Per ulteriori informazioni, vedere Procedura: abilitare gli smart tag in Word ed Excel.
Premere F5 per eseguire il progetto.
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.
Fare clic sull'icona di smart tag visualizzata sulla stringa riconosciuta, quindi fare clic su Convert to Celsius.
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