Ich programmiere ein Spiel, in dem ich manchmal einige Schritte rückgängig machen muss, gibt es einen direkten Weg, dies zu tun? Ich habe versucht, die Steuerelemente in Datenstrukturen, Stapeln und Listen und so, aber die Dinge sind zu kompliziert in meinem Spiel. dankeWie kann ich Änderungen rückgängig machen und den vorherigen Formularstatus in Winform abrufen?
Antwort
Nein, es gibt keine integrierte Möglichkeit, dies zu tun; Sie müssen es selbst programmieren. Ich würde vorschlagen, eine Klasse FormState
zu erstellen, die Mitglieder hat, um die Werte jedes Steuerelements in dem Formular darzustellen, deren Status Sie speichern möchten. Fügen Sie dann Methoden hinzu, um die Formularwerte in und aus dem Formular zu kopieren. Schließlich erstellen Sie eine Stack-Datenstruktur in Ihrem Programm. Wenn der Benutzer etwas im Formular ändert, erstellen Sie eine neue Instanz von FormState
, rufen Sie die Methode auf, um den aktuellen Formularstatus an das Objekt FormState
zu übertragen, und schieben Sie es auf den Stapel. Wenn der Benutzer die Rückgängig-Taste drückt, wird der letzte Status aus dem Stapel entfernt und die Methode zum Wiederherstellen der Formularsteuerelemente aus der Klasse FormState
aufgerufen. Das ist wirklich alles, was dazu gehört.
Was meinen Sie mit "Änderungen" und "Form-Zustand"? Wahrscheinlich ist die Antwort in jedem Fall, dass Sie es selbst tun müssen. –
Wenn der Benutzer in meinem Spiel Dinge ändert, möchte ich ihm die Möglichkeit geben, dies rückgängig zu machen. Was bedeutet, ich möchte den vorherigen Zustand erhalten, in dem das Formular war. – Sujood
Noch, was "Staat"? Welche Dinge sind verändert? Position? Text? Werte? Farben? Größen? Sie müssen diesen "Zustand" irgendwie speichern, um trotzdem zurückgehen zu können. –