2012-11-22 3 views
7

Es scheint, dass es diese ClearUndo() Methode in einer RichTextBox in Windows Forms gibt (siehe system.windows.forms.textboxbase.).Wie kann ich eine Aktion aus dem Rückgängig-Stapel eines RichTextBox-Steuerelements entfernen?

Ich brauche etwas ähnliches in RichTextBox Control. Dies liegt daran, dass (wie hier erwähnt: Preventing a RichTextBox operation from being added to the control's Undo stack) jede Änderung zum Rückgängig-Stack der RichTextBox hinzugefügt wird.

Ich möchte OnTextChanged Ereignis überschreiben und einige dieser Änderungen von Uno-Stapel entfernen. Wie kann ich das machen?

danke.

Antwort

11

Sie können ClearUndo() für WPF RichTextBox Steuerung mit dem folgenden Code emulieren:

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

Aber es gibt keine Möglichkeit, keine besonderen Aktionen in der Undo Liste steuern kann.

Wenn Sie immer noch Ihren eigenen Undo/Redo-Mechanismus implementieren möchten, ist es am einfachsten und einfachsten, den gesamten Text des Steuerelements bei jeder signifikanten Textänderung in einem Array zu speichern. Aber ich würde es nur empfehlen, wenn Sie nicht planen, großen Text mit dem Steuerelement zu bearbeiten.

Verwandte Themen