Как получить последнюю строку / абзац выделения в RichTextBox? - PullRequest
0 голосов
/ 22 мая 2019

У меня странное поведение в выборках в RichTextBox:

В выделении, когда последняя строка выделения выделена полностью, свойство .End указывает не на последнюю строку строки (абзац) выбора, но в следующем пункте.Снимки экрана:

Выбранный текст

enter image description here

Свойство .Text показываетправильное содержание

enter image description here

Но свойство .End указывает на следующее paragraph

enter image description here

Я мог бы перебрать выделение и сравнить содержимое свойства .Text с прогонами в абзацах и….Но есть ли более простой способ получить последний абзац выделения?

1 Ответ

0 голосов
/ 22 мая 2019

Наконец-то я нашел этот способ, чтобы получить последнюю строку в выделении.Кажется, работает.

// In my case "this" is the RichTextBox itself, because I work in a derived class from RichTextBox
Paragraph lastLineInSelection = this.Selection.End.Paragraph;
if (this.Selection.End.IsAtLineStartPosition)
{
    Block previousBlock = this.Selection.End.Paragraph.PreviousBlock;
    while (previousBlock is Paragraph == false && previousBlock != null)
        previousBlock = previousBlock.PreviousBlock;

    if (previousBlock != null)
        lastLineInSelection = (previousBlock as Paragraph);
}
...