MoveToBookmark

MoveToBookmark(string)

Перемещает курсор на закладку.

public bool MoveToBookmark(string bookmarkName)
ПараметрТипОписание
bookmarkNameStringИмя закладки, на которую нужно переместить курсор.

Возвращаемое значение

истинный если закладка была найдена;ЛОЖЬ в противном случае.

Примечания

Перемещает курсор в позицию сразу после начала закладки с указанным именем .

Сравнение не учитывает регистр. Если закладка не найдена,ЛОЖЬ is возвращается, а курсор не перемещается.

Вставка нового текста не заменяет существующий текст закладки.

Обратите внимание, что некоторые закладки в документе закреплены за полями формы. Переход к такой закладке и вставка туда текста вставляет текст в код поля формы . Хотя это не приведет к аннулированию поля формы, текст Insert не будет виден, поскольку он станет частью кода поля.

Примеры

Показывает, как перемещать курсор построителя документов в разные узлы документа.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Создать действительную закладку, объект, состоящий из узлов, заключенных в начальный узел закладки,
 // и конечный узел закладки.
builder.StartBookmark("MyBookmark");
builder.Write("Bookmark contents.");
builder.EndBookmark("MyBookmark");

NodeCollection firstParagraphNodes = doc.FirstSection.Body.FirstParagraph.GetChildNodes(NodeType.Any, false);

Assert.AreEqual(NodeType.BookmarkStart, firstParagraphNodes[0].NodeType);
Assert.AreEqual(NodeType.Run, firstParagraphNodes[1].NodeType);
Assert.AreEqual("Bookmark contents.", firstParagraphNodes[1].GetText().Trim());
Assert.AreEqual(NodeType.BookmarkEnd, firstParagraphNodes[2].NodeType);

// Курсор конструктора документов всегда находится перед узлом, который мы в последний раз добавляли с его помощью.
// Если курсор компоновщика находится в конце документа, его текущий узел будет нулевым.
// Предыдущий узел — это конечный узел закладки, который мы добавили последним.
// Добавление новых узлов с помощью компоновщика добавит их к последнему узлу.
Assert.Null(builder.CurrentNode);

// Если мы хотим отредактировать другую часть документа с помощью конструктора,
// нам нужно будет подвести его курсор к узлу, который мы хотим редактировать.
builder.MoveToBookmark("MyBookmark");

// Перемещение его в закладку переместит его в первый узел в начальном и конечном узлах закладки, вложенный цикл.
Assert.AreEqual(firstParagraphNodes[1], builder.CurrentNode);

// Мы также можем переместить курсор на отдельный узел следующим образом.
builder.MoveTo(doc.FirstSection.Body.FirstParagraph.GetChildNodes(NodeType.Any, false)[0]);

Assert.AreEqual(NodeType.BookmarkStart, builder.CurrentNode.NodeType);
Assert.AreEqual(doc.FirstSection.Body.FirstParagraph, builder.CurrentParagraph);
Assert.IsTrue(builder.IsAtStartOfParagraph);

// Мы можем использовать специальные методы для перемещения к началу/концу документа.
builder.MoveToDocumentEnd();

Assert.IsTrue(builder.IsAtEndOfParagraph);

builder.MoveToDocumentStart();

Assert.IsTrue(builder.IsAtStartOfParagraph);

Смотрите также


MoveToBookmark(string, bool, bool)

Перемещает курсор к закладке с большей точностью.

public bool MoveToBookmark(string bookmarkName, bool isStart, bool isAfter)
ПараметрТипОписание
bookmarkNameStringИмя закладки, на которую нужно переместить курсор.
isStartBooleanКогдаистинный , перемещает курсор в начало закладки. КогдаЛОЖЬ, перемещает курсор в конец закладки.
isAfterBooleanКогдаистинный , перемещает курсор после начальной или конечной позиции bookmark . КогдаЛОЖЬ, перемещает курсор до начальной или конечной позиции bookmark .

Возвращаемое значение

истинный если закладка была найдена;ЛОЖЬ в противном случае.

Примечания

Перемещает курсор в позицию до или после начала или конца закладки.

Если желаемая позиция не находится на уровне строки, происходит переход к следующему абзацу.

Сравнение не учитывает регистр. Если закладка не найдена,ЛОЖЬ is возвращается, а курсор не перемещается.

Примеры

Показывает, как переместить курсор точки вставки узла построителя документов на закладку.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Действительная закладка состоит из узла BookmarkStart, узла BookmarkEnd с
// соответствие имени закладки где-то позже и содержимому, заключенному в этих узлах.
builder.StartBookmark("MyBookmark");
builder.Write("Hello world! ");
builder.EndBookmark("MyBookmark");

// Существует 4 способа перемещения курсора конструктора документов к закладке.
// Если мы находимся между узлами BookmarkStart и BookmarkEnd, курсор будет внутри закладки.
// Это означает, что любой текст, добавленный конструктором, станет частью закладки.
// 1 - За пределами закладки, перед узлом BookmarkStart:
Assert.True(builder.MoveToBookmark("MyBookmark", true, false));
builder.Write("1. ");

Assert.AreEqual("Hello world! ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. Hello world!", doc.GetText().Trim());

// 2 - Внутри закладки, сразу после узла BookmarkStart:
Assert.True(builder.MoveToBookmark("MyBookmark", true, true));
builder.Write("2. ");

Assert.AreEqual("2. Hello world! ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. 2. Hello world!", doc.GetText().Trim());

// 2 — Внутри закладки, прямо перед узлом BookmarkEnd:
Assert.True(builder.MoveToBookmark("MyBookmark", false, false));
builder.Write("3. ");

Assert.AreEqual("2. Hello world! 3. ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. 2. Hello world! 3.", doc.GetText().Trim());

// 4 - За пределами закладки, после узла BookmarkEnd:
Assert.True(builder.MoveToBookmark("MyBookmark", false, true));
builder.Write("4.");

Assert.AreEqual("2. Hello world! 3. ", doc.Range.Bookmarks["MyBookmark"].Text);
Assert.AreEqual("1. 2. Hello world! 3. 4.", doc.GetText().Trim());

Смотрите также