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
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