Entwickler-Ecke

Sonstiges (.NET) - Rückgängig strg+z und Widerholen strg+y


JoKaBo - Mo 14.02.11 19:44
Titel: Rückgängig strg+z und Widerholen strg+y
Hallo,

In meinem Programm habe ich 2 Buttons und 1 richtextbox und wenn ich Auf button 1 Drücke Soll in der richtextbox ein schritt zurückgehen Und wenn ich Auf button 2 Drücke soll sich soll sich das was ich rückgängig gemacht habe wider kommen
Button 1: Rückgängig
Button2: Widerholen


JoKaBo


Th69 - Mo 14.02.11 19:57

Hi,

du weißt sicherlich, was "Rückgängig" und "Wiederholen" auf englisch heißt? Nun brauchst du nur noch die entsprechenden Methoden der RichTextBox aufzurufen ;-)


JoKaBo - Mo 14.02.11 20:19

Ok das habe ich geschafft aber jetzt wird immer der ganze Text rückgängig gemacht und jetzt soll das soll Schritt für Schritt passieren
also wenn ich "hallo" eingebe soll die letzte Eingabe zuerst rückgängig gemacht werden Und usw.


Th69 - Mo 14.02.11 20:43

Hallo again,

mehrstufiges Undo/Redo wird von den (Rich)TextBox-Komponenten leider nicht unterstützt (im Notepad bzw. WordPad ist das ja ebenfalls so).

Ich kann dir aber ein paar Links dazu geben:
Multilevel-Undo/-Redo mit dem Command-Muster [http://www.mycsharp.de/wbb2/thread.php?threadid=21273]
Undo-/Redofunktion über Stack implementieren [http://www.mycsharp.de/wbb2/thread.php?threadid=65930]
http://www.codeproject.com/KB/cs/generic_undo_redo.aspx
http://www.codeproject.com/KB/cs/undo_support.aspx
http://www.codeproject.com/KB/cs/AutomatingUndoRedo.aspx

Du müßtest dazu dann im KeyDown/KeypPress/KeyUp bzw. TexChanged-Event selber jede Änderung nachvollziehen und entsprechend deinen Undo-Stack füllen (aber erwarte nicht, daß du das als Programmieranfänger sofort perfekt hinkriegst ;-))

Bei meiner Paint#-Komponente [http://www.mycsharp.de/wbb2/thread.php?threadid=91146] habe ich diese Undo-/Redo-Funktionalität auch benötigt und danach recherchiert...