我有一个表单和一些按钮。
当我按下按钮时,windows 窗体控件,如文本框或组框,按钮出现和消失并改变我窗体上的位置,因为它是一个动态窗体:)
但是,我想做的是有一个按钮 ( BACK
),它将使我的表单恢复到按钮操作之前的状态,将控件放回原位并声明他们在行动之前。
我想到了一个 C
类 MyState(),它将具有类似 Form1 数组的内容。
我将在该数组中保存表单状态,当我按下 back
按钮时,从数组中获取表单状态的“副本”以及索引状态的索引。
不幸的是,我不知道如何实现它。 :|
任何人都可以告诉我正确的方法吗?
class Mystate
{
private Form1 [] state;
public Mystate(int n)
{
this.state = new Form1[n];
}
public Form1 this[int index]
{
get
{
return state[index];
}
set
{
this.state[index] = value;
}
}
}
最佳答案
听起来您希望表单具有高级撤消/重做功能。
这是一个框架:http://www.codeproject.com/Articles/10576/An-Undo-Redo-Buffer-Framework
这是一个接近但与您的问题不完全相同的答案(虽然实现的模式相同):How to implement good and efficient undo/redo functionality for a TextBox
MementoPattern:http://www.codeproject.com/Articles/18025/Generic-Memento-Pattern-for-Undo-Redo-in-C
关于C# 保存所有控件的窗体状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10032925/