Click to Rate and Give Feedback
MSDN
MSDN Library
Visual Studio 2008
Visual Studio
Smart Tags Overview
 How to: Add Smart Tags to Word Docu...
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
Microsoft Visual Studio Tools for the Microsoft Office system (version 3.0)
How to: Add Smart Tags to Word Documents

Applies to

The information in this topic applies only to the specified Visual Studio Tools for Office projects and versions of Microsoft Office.

Project type

  • Document-level projects

Microsoft Office version

  • Word 2007

  • Word 2003

For more information, see Features Available by Application and Project Type.

You can add smart tags to your document-level projects for Microsoft Office Word to recognize text in a document and give the user access to actions related to the recognized terms.

To add smart tags to a Word document

  1. Create a new Word document or template project. For more information, see How to: Create Visual Studio Tools for Office Projects.

  2. Create an instance of the SmartTag class.

  3. Specify text that you want to recognize by passing one or more strings to the Terms property or one or more regular expressions to the Expressions property of the SmartTag.

  4. Create the actions for the smart tags. Actions are items that appear on the smart tags menu. Create actions by adding instances of the Action type to the collection of actions exposed by the Actions property.

  5. Create event handlers to respond to the Click event, and optionally the BeforeCaptionShow event, of the actions that you created.

  6. In the code file for the project document, add the SmartTag to the collection of smart tags exposed by the VstoSmartTags property.

The following code example shows how to create a smart tag that recognizes the words term and recognize. When you run the project, the recognizer marks the words term and recognize in the document as smart tags. To test the example, type the words term and recognize in different places in the document, and then try the smart tag action. The action modifies the menu caption of the action and displays the location of the text that was recognized.

Visual Basic
#Region "Smart Tag Example"

WithEvents DisplayAddress As Microsoft.Office.Tools.Word.Action

Private Sub AddSmartTag()
    Dim SmartTagDemo As New _
        Microsoft.Office.Tools.Word.SmartTag( _
        "www.microsoft.com/Demo#DemoSmartTag", _
        "Demonstration Smart Tag")

    ' Specify the terms to recognize.
    SmartTagDemo.Terms.Add("term")
    SmartTagDemo.Terms.Add("recognize")

    ' Create the action.
    DisplayAddress = New _
        Microsoft.Office.Tools.Word.Action( _
        "To be replaced")

    ' Add the action to the smart tag.
    SmartTagDemo.Actions = New _
        Microsoft.Office.Tools.Word.Action() { _
            DisplayAddress}

    ' Add the smart tag to the document.
    Me.VstoSmartTags.Add(SmartTagDemo)
End Sub

Private Sub OpenMessageBox_BeforeCaptionShow(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
    Handles DisplayAddress.BeforeCaptionShow

    DisplayAddress.Caption = "Display the location of " & _
            e.Text
End Sub

Private Sub DisplayAddress_Click(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
    Handles DisplayAddress.Click

    Dim termStart As Integer = e.Range.Start
    Dim termEnd As Integer = e.Range.End
    MsgBox("The recognized text '" & e.Text & _
            "' begins at position " & termStart & _
            " and ends at position " & termEnd)
End Sub

#End Region

C#
#region Smart Tag Example

private Microsoft.Office.Tools.Word.Action DisplayAddress;

private void AddSmartTag()
{
    Microsoft.Office.Tools.Word.SmartTag SmartTagDemo =
        new Microsoft.Office.Tools.Word.SmartTag(
        "www.microsoft.com/Demo#DemoSmartTag",
        "Demonstration Smart Tag");

    // Specify the terms to recognize.
    SmartTagDemo.Terms.Add("term");
    SmartTagDemo.Terms.Add("recognize");

    // Create the action.
    DisplayAddress = new Microsoft.Office.Tools.Word.Action(
        "To be replaced");

    // Add the action to the smart tag.
    SmartTagDemo.Actions = new
        Microsoft.Office.Tools.Word.Action[] { 
        DisplayAddress };

    // Add the smart tag to the document.
    this.VstoSmartTags.Add(SmartTagDemo);

    DisplayAddress.BeforeCaptionShow += new
        Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
        DisplayAddress_BeforeCaptionShow);

    DisplayAddress.Click += new
        Microsoft.Office.Tools.Word.ActionClickEventHandler(
        DisplayAddress_Click);
}

void DisplayAddress_BeforeCaptionShow(object sender,
    Microsoft.Office.Tools.Word.ActionEventArgs e)
{
    DisplayAddress.Caption = "Display the location of " +
        e.Text;
}

void DisplayAddress_Click(object sender,
    Microsoft.Office.Tools.Word.ActionEventArgs e)
{
    int termStart = e.Range.Start;
    int termEnd = e.Range.End;
    MessageBox.Show("The recognized text '" + e.Text +
        "' begins at position " + termStart.ToString() +
        " and ends at position " + termEnd.ToString());
}

#endregion

  • Add the code to your project and call the AddSmartTag method from the Startup event handler in the project document code file.

You must enable smart tags in Word. By default, they are not enabled. For more information, see Smart Tags Overview.

Tags What's this?: jim (x) lawson (x) Add a tag
Community Content   What is Community Content?
Add new content      
Processing
© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker