Aspose::Words::DocumentBuilder::MoveToField метод

DocumentBuilder::MoveToField method

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

void Aspose::Words::DocumentBuilder::MoveToField(const System::SharedPtr<Aspose::Words::Fields::Field> &field, bool isAfter)
ПараметрТипОписание
полеconst System::SharedPtr<Aspose::Words::Fields::Field>&Поле, к которому нужно переместить курсор.
isAfterboolКогда true, перемещает курсор после конца поля. Когда false, перемещает курсор перед началом поля.

Примеры

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

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Вставьте поле с помощью DocumentBuilder и добавьте после него последовательность текста.
System::SharedPtr<Aspose::Words::Fields::Field> field = builder->InsertField(u" AUTHOR \"John Doe\" ");

// Курсор builder'а в данный момент находится в конце документа.
ASSERT_TRUE(System::TestTools::IsNull(builder->get_CurrentNode()));

// Переместите курсор к полю, указав, разместить ли курсор перед полем или после него.
builder->MoveToField(field, moveCursorToAfterTheField);

// Обратите внимание, что курсор находится за пределами поля в обоих случаях.
// Это означает, что мы не можем редактировать поле с помощью builder'а таким образом.
// Чтобы отредактировать поле, мы можем использовать метод MoveTo builder'а на FieldStart поля
// или узел FieldSeparator, чтобы разместить курсор внутри.
if (moveCursorToAfterTheField)
{
    ASSERT_TRUE(System::TestTools::IsNull(builder->get_CurrentNode()));
    builder->Write(u" Text immediately after the field.");

    ASSERT_EQ(u"\u0013 AUTHOR \"John Doe\" \u0014John Doe\u0015 Text immediately after the field.", doc->GetText().Trim());
}
else
{
    ASPOSE_ASSERT_EQ(field->get_Start(), builder->get_CurrentNode());
    builder->Write(u"Text immediately before the field. ");

    ASSERT_EQ(u"Text immediately before the field. \u0013 AUTHOR \"John Doe\" \u0014John Doe\u0015", doc->GetText().Trim());
}

См. также