SmartTag.PersistTag Method (ISmartTagProperties)

Stores information about the smart tag.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v9.0 (in Microsoft.Office.Tools.Excel.v9.0.dll)

Syntax

'Declaration
Protected Sub PersistTag ( _
    propertyBag As ISmartTagProperties _
)
'Usage
Dim propertyBag As ISmartTagProperties

Me.PersistTag(propertyBag)
protected void PersistTag(
    ISmartTagProperties propertyBag
)

Parameters

  • propertyBag
    Type: Microsoft.Office.Interop.SmartTag.ISmartTagProperties
    A property bag containing key and value pairs for the token. Can be nulla null reference (Nothing in Visual Basic).

Exceptions

Exception Condition
InvalidOperationException

PersistTag was not called from Recognize.

Remarks

PersistTag commits the tag being recognized. Call it from the Recognize method to indicate that the smart tag was found in the text. Use the propertyBag parameter to commit any custom properties for the smart tag. You can use these properties to customize the action taken when an item from the smart tag shortcut menu is selected.

Examples

The following code example demonstrates how to override the Recognize method within a class that derives from Microsoft.Office.Tools.Excel.SmartTag. This implementation of Recognize compares each smart tag term to the contents of the cell. If a smart tag term is found in the cell, the code adds a custom smart tag property and then uses the PersistTag(ISmartTagProperties) method to recognize the smart tag. This example assumes that you have added a reference to Microsoft Smart Tags 2.0 Type Library from the COM tab of the Add Reference dialog box. This code example is part of a larger example provided for the SmartTag class.

Protected Overrides Sub Recognize(ByVal text As String, _
    ByVal site As ISmartTagRecognizerSite, _
    ByVal tokenList As ISmartTagTokenList)

    ' Determine whether each smart tag term exists in 
    ' the document text.
    Dim Term As String
    For Each Term In Me.Terms

        ' Search the cell text for the first instance of 
        ' the current smart tag term.
        Dim index As Integer = Me.CellText.IndexOf(Term, 0)

        If (index >= 0) Then

            ' 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 As String = "Key1"
            propertyBag.Write(key, DateTime.Now)

            ' Attach the smart tag to the term in the document
            Me.PersistTag(propertyBag)

            ' This implementation only finds the first instance
            ' of a smart tag term in the cell. 
            Exit For
        End If
    Next
End Sub
protected override void Recognize(string text, 
    ISmartTagRecognizerSite site, ISmartTagTokenList tokenList)
{
    // Determine whether each smart tag term exists in 
    // the document text.
    foreach (string term in this.Terms)
    {
        // Search the cell text for the first instance of 
        // the current smart tag term.
        int index = this.CellText.IndexOf(term, 0);

        if (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 document
            this.PersistTag(propertyBag);

            // This implementation only finds the first instance
            // of a smart tag term in the cell. 
            break;
        }
    }
}

.NET Framework Security

See Also

Reference

SmartTag Class

SmartTag Members

PersistTag Overload

Microsoft.Office.Tools.Excel Namespace

Properties