如何在 winform 中撤消更改并检索以前的表单状态?

How can I undo changes and retrieve previous form state in winform?

我正在编写一个游戏,有时我需要撤消一些步骤,有没有直接的方法可以做到这一点? 我尝试将控件放在数据结构、堆栈和列表等中,但在我的游戏中事情太复杂了。 谢谢

不,没有内置的方法可以做到这一点;你必须自己编码。我建议创建一个 class FormState ,它的成员代表您要保存其状态的表单上每个控件的值。然后添加将表单值复制到表单或从表单中复制的方法。最后,在你的程序中制作一个栈数据结构。每当用户更改表单上的某些内容时,创建 FormState 的新实例,调用方法将当前表单状态传输到 FormState 对象,并将其压入堆栈。如果用户按下撤消,将最后一个状态弹出堆栈并调用方法从 FormState class 恢复表单控件。这就是它的全部内容。