Поделиться через


Пошаговое руководство. Создание смарт-тега с помощью надстройки уровня приложения

Обновлен: Июль 2008

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office.

Тип проекта

  • Проекты уровня приложения

Версия Microsoft Office

  • Word 2007

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

Пошаговое руководство показывает, как создать смарт-тег уровня приложения, который можно использовать в любом открытом документе. Смарт-тег распознает мерные ложки в документе Microsoft Office Word 2007 и обеспечивает действие, преобразующее соответствующее значение в унции. Он добавляет эквивалентное значение унций после значения в мерных ложках.

Чтобы обеспечить работу смарт-тега, конечные пользователи должны включить поддержку смарт-тегов в приложении Word. Дополнительные сведения см. в разделе Практическое руководство. Разрешение смарт-тегов в Word и Excel.

В данном пошаговом руководстве рассмотрены следующие задачи:

  • Создание смарт-тега, использующего регулярное выражения для распознавания строк.

  • Создание действия, которое извлекает данные из смарт-тега и модифицирует распознанный смарт-тегом текст.

Cc442944.alert_note(ru-ru,VS.90).gifПримечание.

На компьютере могут отображаться имена или расположения некоторых элементов пользовательского интерфейса Visual Studio, отличающиеся от указанных в дальнейших инструкциях. Эти элементы определяются используемой версией Visual Studio и ее параметрами. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты:

  • Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System).

  • Microsoft Office Word 2007.

Средства Visual Studio Tools for Office устанавливаются по умолчанию с нижеперечисленными версиями Visual Studio. Для того чтобы проверить наличие установленных указанных версий, см. раздел Установка средств Visual Studio для Office.

Создание нового проекта

Для начала следует создать проект надстройки Word.

Создание нового проекта

Visual Studio добавляет проект Мой смарт-тег рецепта в Обозреватель решений.

Настройка проекта

Проект должен содержать ссылку на библиотеку DLL смарт-тега и использовать регулярные выражения.

Настройка проекта

  1. В меню Проект выберите команду Добавить ссылку.

  2. На вкладке COM выберите Microsoft Smart Tags 2.0 Type Library и нажмите кнопку ОК.

  3. В Обозревателе решений щелкните правой кнопкой мыши файл ThisDocument.vb (для Visual Basic) или ThisDocument.cs (для C#) и выберите в меню пункт Просмотреть код.

  4. Добавьте следующую строку в начало файла.

    Imports System.Text.RegularExpressions
    
    using System.Text.RegularExpressions;
    

Создание смарт-тега

Чтобы смарт-тег мог находить и преобразовывать измерения в ложках, добавьте регулярное выражение в список терминов, распознаваемых тегом, и создайте действие, которое станет доступным пользователю после щелчка смарт-тега.

Создание смарт-тега

  1. Замените обработчик событий ThisAddIn_Startup класса ThisAddIn следующим кодом. Этот код создает SmartTag, представляющий смарт-тег Visual Studio Tools for Office и добавляет регулярное выражение к списку терминов, распознаваемых смарт-тегом.

    WithEvents RecipeAction As Microsoft.Office.Tools.Word.Action
    
    Private Sub ThisAddIn_Startup(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Me.Startup
    
        Dim SmartTagDemo As New Microsoft.Office.Tools.Word.SmartTag( _
            "www.microsoft.com/Demo#DemoSmartTag", "Recipe Smart Tag")
    
        SmartTagDemo.Expressions.Add(New Regex( _
            "(?'tbsNumber'[+-]?\b[0-9]+)?\s?(tbs|tablespoons|tablespoon)\b"))
    
    
    private Microsoft.Office.Tools.Word.Action RecipeAction;
    
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Word.SmartTag SmartTagDemo =
            new Microsoft.Office.Tools.Word.SmartTag(
            @"www.microsoft.com/Demo#DemoSmartTag",
            @"Recipe Smart Tag");
    
        // Specify the terms to recognize.
        SmartTagDemo.Expressions.Add(new Regex(
            @"(?'tbsNumber'[+-]?\b[0-9]+)?\s?(tbs|tablespoons|tablespoon)\b"));
    
    
  2. Создайте новое действие Action и добавьте его к свойству Actions смарт-тега. Действие Action представляет собой элемент, который пользователь может выбрать в меню смарт-тега.

    RecipeAction = New Microsoft.Office.Tools.Word.Action("Convert to ounces")
    
    SmartTagDemo.Actions = _
        New Microsoft.Office.Tools.Word.Action() {RecipeAction}
    
    RecipeAction = new Microsoft.Office.Tools.Word.Action(
        @"Convert to ounces");
    
    // Add the action to the smart tag.
    SmartTagDemo.Actions = new
        Microsoft.Office.Tools.Word.Action[] { RecipeAction };
    
    
  3. Вложите смарт-тег в свойство VstoSmartTags класса ThisAddIn. В C# присоедините обработчик событий к событию Click действия.

        Me.VstoSmartTags.Add(SmartTagDemo)
    End Sub
    
    
        // Add the smart tag to the document.
        this.VstoSmartTags.Add(SmartTagDemo);
    
        RecipeAction.Click += new
            Microsoft.Office.Tools.Word.ActionClickEventHandler(
            RecipeAction_Click);
    }
    
    

Создание обработчика событий для действия

Обработчик событий извлекает значение в мерных ложках, используя ключ tbsNumber, который находится в контейнере свойств смарт-тега. Затем обработчик событий преобразует количество мерных ложек в унции и вставляет значение унций в скобках после значения в мерных ложках.

В этом примере ключ tbsNumber идентифицирует захваченную группу из регулярного выражения, назначенного смарт-тегу. Дополнительные сведения о контейнерах свойств и регулярных выражениях в смарт-тегах Visual Studio Tools for Office см. в разделе Архитектура смарт-тега.

Создание обработчика событий

  • Скопируйте в класс ThisAddIn следующий код.

    Private Sub RecipeAction_Click(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
        Handles RecipeAction.Click
    
        Dim value As String = e.Properties.Read("tbsNumber")
        Dim tbsRecipeAmount As Double = System.Convert.ToDouble(value)
        Dim ozRecipeAmount As Double = tbsRecipeAmount * 0.5
        e.Range.InsertAfter(" (" + ozRecipeAmount.ToString() + " oz)")
    End Sub
    
    
    private void RecipeAction_Click(object sender,
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        string value = e.Properties.get_Read(@"tbsNumber");
        double tbsRecipeAmount = System.Convert.ToDouble(value);
        double ozRecipeAmount = tbsRecipeAmount * 0.5;
        e.Range.InsertAfter(" (" + ozRecipeAmount.ToString() + " oz)");
    }
    

Проверка работы приложения

Теперь можно проверить документ, убеждаясь, что смарт-тег преобразует измерения в ложках в унции.

Проверка рабочей книги

  1. Необходимо включить поддержку смарт-тегов в Word.

    Дополнительные сведения см. в разделе Практическое руководство. Разрешение смарт-тегов в Word и Excel.

  2. Нажмите клавишу F5 для запуска проекта.

  3. Введите рецепт с количеством ингредиентов, измеренных в ложках.

  4. Щелкните значок смарт-тега, который отображается над распознанной строкой, и затем выберите пункт меню Convert to ounces (Преобразовать в унции).

  5. Убедитесь, что после количества в ложках вставлен эквивалент в унциях.

См. также

Задачи

Практическое руководство. Разрешение смарт-тегов в Word и Excel

Практическое руководство. Добавление смарт-тегов в документы Word

Практическое руководство. Добавление смарт-тегов в книги Excel

Практическое руководство. Создание в приложении Word смарт-тегов с настраиваемыми распознавателями

Практическое руководство. Создание смарт-тегов с настраиваемыми распознавателями в Excel

Пошаговое руководство. Создание смарт-тега с помощью настройки уровня документа.

Основные понятия

Общие сведения о смарт-тегах

Архитектура смарт-тега

Журнал изменений

Дата

Журнал

Причина

Июль 2008

Добавлен раздел.

Изменение функции SP1.