C# 保存所有控件的窗体状态

标签 c# windows forms

我有一个表单和一些按钮。

当我按下按钮时,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/

相关文章:

c# - 具有泛型属性的 LINQ 表达式

windows - 如何在 PowerShell 中停止长时间运行的 cmdlet

windows - 通过 pnputil 安装驱动程序

c - 未定义对 'SetCurrentConsoleFontEx' 的引用?

jquery - 为什么 .submit() 无法使用 Bootstrap Datepicker 处理changeDate?

php - 从表单接收数据时自动增加MySQL中的主键

c# - 让方法语法中的查询语法?

c# - 按值对字典进行排序 - 降序 THEN 字母 C#

c# - WPF - 从 UserControl ViewModel 引发事件

PHP - HTML 表单 TEXTAREA 包含 HTML