как получить выделенную область в RichTextBox потом задать такую же для второго у которого такой же текст и для ворда, у которого тоже такой же текст?
с вордом работаем через Interop
var start = Origin.RichTextBox.Selection.Start;
var end = Origin.RichTextBox.Selection.End;
var textRange = Target.RichTextBox.Selection;
textRange.Select(start, end);
выдаёт ошибку System.ArgumentException: 'TextPointer не находится в дереве TextTree, сопоставленном данному объекту.'
Здравствуйте, dsalodki, Вы писали:
D>как получить выделенную область в RichTextBox потом задать такую же для второго у которого такой же текст и для ворда, у которого тоже такой же текст?
D>с вордом работаем через Interop
Ну, видимо, нужно получать смещения относительно начала, а потом по ним воспроизводить такое же смещение у другого документа.
Что-то вроде:
var originStartOffset = Origin.RichTextBox.Document.ContentStart.GetOffsetToPosition(Origin.RichTextBox.Selection.Start);
var originEndOffset = Origin.RichTextBox.Document.ContentStart.GetOffsetToPosition(Origin.RichTextBox.Selection.End);
var targetStart = Target.RichTextBox.Document.ContentStart.GetPositionAtOffset(originStartOffset);
var targetEnd = Target.RichTextBox.Document.ContentStart.GetPositionAtOffset(originEndOffset);
Target.RichTextBox.Selection.Select(targetStart, targetEnd);
В Interop.Word у Selection Start и End — это смещение относительно начала и можно те же originStartOffset и originEndOffset пробросить.
Но это не точно.