Compartilhar via


SmartTag Classe (sistema de 2007)

Representa uma marca SMART em uma personalização em nível de documento do Microsoft Office palavra.

Namespace:  Microsoft.Office.Tools.Word
Assembly:  Microsoft.Office.Tools.Word.v9.0 (em Microsoft.Office.Tools.Word.v9.0.dll)

Sintaxe

<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public Class SmartTag _
    Inherits SmartTagBase

Dim instance As SmartTag
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public class SmartTag : SmartTagBase

Comentários

The SmartTag classe é uma implementação do resumo SmartTagBase classe de SMART Rótulos em documentos do palavra. Para obter informações sobre Rótulos inteligentes a Visual Studio Tools for Office soluções, consulte Arquitetura de marcas inteligentes.

Exemplos

O exemplo de código a seguir demonstra como criar seu próprio personalizado marca SMART classe que deriva de SmartTag. O exemplo substitui o Recognize método para reconhecer cada marca SMART termo encontrados em um parágrafo. Este exemplo assume que você adicionou uma referência a Biblioteca de tipos do Microsoft Rótulos inteligentes 2.0 from the COM Guia de do Adicionar referência caixa de diálogo.Para obter um exemplo de código que usa a implementação padrão de SmartTag, consulte o Action classe.

Imports Microsoft.Office.Tools.Word
Imports Microsoft.Office.Interop.SmartTag

PublicClass CustomSmartTag
    Inherits SmartTag

    ' Declare Actions for this SmartTagWithEvents Action1 AsNew Action("Display property value")
    WithEvents Action2 AsNew Action("Display smart tag details")

    PublicSubNew()
        MyBase.New("https://www.contoso.com/Demo#DemoSmartTag", _
            "Custom Smart Tag")
        Me.Terms.AddRange(NewString() {"sales", "organization"})
        Actions = New Action() {Action1, Action2}
    EndSubProtectedOverridesSub Recognize(ByVal text AsString, _
        ByVal site As ISmartTagRecognizerSite, _
        ByVal tokenList As ISmartTagTokenList)

        ' Determine whether each smart tag term exists in         ' the document text.Dim Term AsStringForEach Term InMe.Terms

            ' Search the text for the current smart tag term.Dim index AsInteger = Me.ParagraphText.IndexOf(Term, 0)

            While (index >= 0)

                ' Create a smart tag token and a property bag for the                 ' recognized term.Dim propertyBag As ISmartTagProperties = _
                    site.GetNewPropertyBag()

                ' Write a new property value.Dim key AsString = "Key1"
                propertyBag.Write(key, DateTime.Now)

                ' Attach the smart tag to the term in the documentMe.PersistTag(index, Term.Length, propertyBag)

                ' Increment the index and then find the next                ' instance of the smart tag term.
                index += Term.Length
                index = ParagraphText.IndexOf(Term, index)
            EndWhileNextEndSub
    ' This action displays the property value for the term.PrivateSub Action1_Click(ByVal sender AsObject, _
        ByVal e As ActionEventArgs) Handles Action1.Click

        Dim propertyBag As ISmartTagProperties = e.Properties
        Dim key AsString = "Key1"
        MsgBox("The corresponding value of " & _
            key & " is: " & propertyBag.Read(key))
    EndSub
    ' This action displays smart tag details.PrivateSub Action2_Click(ByVal sender AsObject, _
        ByVal e As ActionEventArgs) Handles Action2.Click

        MsgBox("The current smart tag caption is '" & _
            Me.Caption & "'. The current smart tag type is '" & _
            Me.SmartTagType & "'.")
    EndSubEndClass
using System;
using System.Windows.Forms;
using Microsoft.Office.Tools.Word;
using Microsoft.Office.Interop.SmartTag;

publicclass CustomSmartTag : Microsoft.Office.Tools.Word.SmartTag
{

    // Declare Actions for this SmartTagprivate Microsoft.Office.Tools.Word.Action Action1 =
        new Microsoft.Office.Tools.Word.Action("Display property value");
    private Microsoft.Office.Tools.Word.Action Action2 =
        new Microsoft.Office.Tools.Word.Action("Display smart tag details");

    public CustomSmartTag() : base(
        "https://www.contoso.com/Demo#DemoSmartTag", 
        "Custom Smart Tag")
    {
        this.Terms.AddRange(newstring[] { 
            "sales", "organization" });
        Actions = new Microsoft.Office.Tools.Word.Action[] { 
            Action1, Action2 };
        Action1.Click += 
            new ActionClickEventHandler(Action1_Click);
        Action2.Click += 
            new ActionClickEventHandler(Action2_Click);
    }

    protectedoverridevoid Recognize(string text, 
        ISmartTagRecognizerSite site, ISmartTagTokenList tokenList)
    {
        foreach (string term inthis.Terms)
        {
            // Search the text for the current smart tag term.int index = this.ParagraphText.IndexOf(term, 0);

            while (index >= 0)
            {
                // Create a smart tag token and a property bag for the // recognized term.
                ISmartTagProperties propertyBag = 
                    site.GetNewPropertyBag();

                // Write a new property value.string key = "Key1";
                propertyBag.Write(key, DateTime.Now.ToString());

                // Attach the smart tag to the term in the documentthis.PersistTag(index, term.Length, propertyBag);

                // Increment the index and then find the next// instance of the smart tag term.
                index += term.Length;
                index = ParagraphText.IndexOf(term, index);
            }
        }
    }

    // This action displays the property value for the term.privatevoid Action1_Click(object sender, 
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        ISmartTagProperties propertyBag = e.Properties;
        string key = "Key1";
        MessageBox.Show("The corresponding value of " + key + 
            " is: " + propertyBag.get_Read(key));
    }

    // This action displays smart tag details.privatevoid Action2_Click(object sender, 
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        MessageBox.Show("The current smart tag caption is '" + 
            this.Caption + "'. The current smart tag type is '" + 
            this.SmartTagType + "'.");
    }
}

Hierarquia de herança

System.Object
  Microsoft.Office.Tools.SmartTagBase
    Microsoft.Office.Tools.Word.SmartTag

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Membros SmartTag

Namespace Microsoft.Office.Tools.Word

Outros recursos

Arquitetura de marcas inteligentes

Como: Adicionar marcas inteligentes a documentos do Word

Como: Criar marcas inteligentes com identificadores de Personalizar no Word

Demonstra Passo a passo: Criando uma marca inteligente com uma personalização em nível de documento