Порядок вставки элемента при использовании Range.PasteAndFormat c# - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь вставить текст в al oop с помощью автоматизации Word, используя следующий код.

Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsText())
    Thread.Sleep(500);

initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);

У меня есть набор строк, которые я пытаюсь написать:

Это строка 1
Это строка 2
Это строка 3

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

Это строка 3
Это строка 2
Это строка 1

Есть идеи, что мне нужно сделать, чтобы исправить порядок вывода?

1 Ответ

0 голосов
/ 25 января 2020

Наконец-то я разобрался с исправлением. Мне пришлось добавить

"initialRange.MoveEnd ();" строка перед вызовом PasteAndFormat.

Следовательно, окончательный код выглядит как

Clipboard.SetData(System.Windows.DataFormats.Rtf, text);
if (!Clipboard.ContainsData(DataFormats.Rtf))
    Thread.Sleep(500);

initialRange.MoveEnd();
initialRange.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting);
initialRange.Collapse(WdCollapseDirection.wdCollapseEnd);
...