Программное обновление текста закладки

Вы можете вставить текст в закладку-заполнитель в документе Microsoft Office Word, чтобы позднее извлечь или заменить текст закладки. При разработке настройки на уровне документа можно обновить текст в элементе управления Bookmark с привязкой к данным. Дополнительные сведения см. в статье "Привязка данных к элементам управления в решениях Office".

Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO для Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Объект закладки может быть одного из двух типов.

  • Элемент управления ведущего приложения Bookmark.

    Элементы управления Bookmark расширяют неуправляемые объекты Bookmark, реализуя привязку к данным и предоставляя события. Дополнительные сведения об элементах управления узлами см. в обзоре элементов узла и элементов управления узлами.

  • Собственный объект Bookmark.

    У объектов Bookmark нет событий или возможностей для привязки данных.

    Поведение Bookmark и Bookmark при назначении текста закладке отличается. Дополнительные сведения см. в разделе "Элемент управления Закладки".

Использование элементов управления узлами

Обновление содержимого закладки с помощью элемента управления Bookmark

  1. Создайте процедуру, которая принимает аргумент bookmark в качестве имени закладки и аргумент newText в качестве строки, назначаемой свойству Text.

    Примечание.

    Назначение текста свойству Text или FormattedText элемента управления Bookmark не приводит к удалению закладки.

    static void BookMarkReplace(
        ref Microsoft.Office.Tools.Word.Bookmark bookmark, 
        string newText)
    {
    
  2. Назначьте строку Text newText свойству объекта Bookmark.

        bookmark.Text = newText;
    }
    

Использование объектов Word

Обновление содержимого закладки с помощью объекта Bookmark приложения Word

  1. Создайте процедуру, которая принимает аргумент bookmark в качестве имени Bookmark и аргумент newText в качестве строки, назначаемой свойству Text закладки.

    Примечание.

    При присвоении текста собственному объекту Bookmark Word закладка удаляется.

    internal void BookMarkReplaceNative(
        Word.Bookmark bookmark, 
        string newText)
    {
    
  2. Назначьте строку Text newText свойству закладки, которая автоматически удаляет закладку. Затем снова добавьте закладку в коллекцию Bookmarks.

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

        object rng = bookmark.Range;
        string bookmarkName = bookmark.Name;
    
        bookmark.Range.Text = newText;
    
        this.Bookmarks.Add(bookmarkName, ref rng); 
    }
    

    Следующий пример кода можно использовать в надстройке VSTO. В этом примере используется активный документ.

        object rng = bookmark.Range;
        string bookmarkName = bookmark.Name;
    
        bookmark.Range.Text = newText;
    
        Word.Document document = this.Application.ActiveDocument;
        document.Bookmarks.Add(bookmarkName, ref rng);
    }