2012-11-22 15 views
7

Wygląda na to, że istnieje metoda ClearUndo() w RichTextBox w Windows Forms (patrz system.windows.forms.textboxbase.).Jak mogę usunąć akcję z cofnięcia stosu formantu RichTextBox?

Potrzebuję czegoś podobnego w RichTextBox Control. Dzieje się tak, ponieważ (jak to jest tutaj wspomniane: Preventing a RichTextBox operation from being added to the control's Undo stack) każda zmiana jest dodawana do stosu cofania RichTextBox.

Chcę zastąpić zdarzenie OnTextChanged i usunąć niektóre z tych zmian ze stosu Uno. Jak mogę to zrobić?

dzięki.

Odpowiedz

11

Można emulować ClearUndo() dla WPF RichTextBox sterowania z następującego kodu:

richTextBox.IsUndoEnabled = false; 
richTextBox.IsUndoEnabled = true; 

Ale nie ma mowy, można kontrolować szczególnych działań w liście Undo.

Jeśli nadal chcesz wdrożyć własny mechanizm Undo/Redo, najprostszym i najprostszym sposobem jest zapisanie w tablicy całego tekstu kontrolki przy każdej znaczącej zmianie tekstu. Ale doradziłbym to tylko wtedy, gdy nie zamierzasz edytować dużego tekstu za pomocą kontrolki.