Rückgängig / Undo in vb.net realisieren

Hi, ich habe ein relativ umfangreiches Programm geschrieben und würde nun gerne noch eine Rückgängig-Funktion einbauen. Es gibt diverse NumericUpDown Felder, Combo- und Checkboxen sowie Textfelder.
Am wichtigsten wären die Numerics, aber für alle Felder wäre das natürlich besser.

Gib es nun die Möglichkeit zu erkennen, welches Feld sich gerade geändert hat und auf welchen Wert?

Meine Idee wäre eine zweidimensionale Variable/Klasse anzulegen in der ich das Feld und dessen Wert speichern kann. Dann vielleicht noch als Arrayliste, sodass ich mehrere Schritte zurück gehen kann.

Danach würde ich bei jedem ValueChanged bzw CheckChanged in jedem Feld den Wert der Variable zuweisen (wobei das schon sehr aufwendig ist, wenn ich das bei jedem Feld einbauen muss. Geht das einfacher?).

Aber wie kann ich dann noch das zugehörige Feld speichern und anschließend nutzen, so dass er dieses Feld auf den vorherigen Wert zurücksetzt.
Hat das was mit dem Sender Objekt zu tun? Wenn ja, wie kann ich das nutzen?

Ich bitte um ein kleines Codebeispiel, da mir eine Beschreibung wahrscheinlich nicht viel weiter helfen wird.

Vielen Dank im Vorraus!

Hallo,

waere es nicht sinnvoller und auch eleganter, anstatt dem Geraffel mit Array,ValueChanged,CheckChanged etc. fuer deine Eingabefelder die entsprechenden Klassen zu ueberlagern und sowas wie ein Dirty-Flag und oldValue zu implementieren?

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]