WPF RichTextBox не удаляет текст - PullRequest
0 голосов
/ 03 марта 2009

Я пытаюсь отменить (предотвратить) редактирование текста в RichTextBox. Я использую событие TextChanged, но я не нашел способа отменить или откатить некоторые изменения, какие-либо идеи?

private void mainRTB_TextChanged(object sender, TextChangedEventArgs e)
        {
            TextRange text = new TextRange(mainRTB.Document.ContentStart, mainRTB.Document.ContentEnd);
            if (text.Text.Length >= this.MaxLenght)
            {
                mainRTB.Document.ContentEnd.DeleteTextInRun(-1);
                mainRTB.IsReadOnly = true;
            }
}

Путем выполнения mainRTB.Document.ContentEnd.DeleteTextInRun (-1); не удаляет текст.

mainRTB -> System.Windows.Controls.RichTextBox

Thks

1 Ответ

1 голос
/ 03 марта 2009

Я не верю, что есть способ предотвратить редактирование, потому что есть только событие ChangedEvent и событие Changing или PreviewChange. Однако вы можете отменить изменение.

private void mainRTB_TextChanged(object sender, TextChangedEventArgs e)  {
            TextRange text = new TextRange(mainRTB.Document.ContentStart, mainRTB.Document.ContentEnd);
            if (text.Text.Length >= this.MaxLenght && mainRTB.CanUndo)
            {
                mainRTB.Undo();
                mainRTB.IsReadOnly = true;
            }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...