【问题标题】:Reverting a form to its original values将表单恢复为其原始值
【发布时间】:2011-03-04 17:05:17
【问题描述】:

所以我试图编写一个取消按钮,当它被点击时,将恢复对表单所做的更改,然后关闭它。我的一个想法是在表单加载事件中声明变量来存储原始值。但是,由于这将涉及将它们声明为全球性的,因此我不想走那条路。话虽如此,我的问题是:无需声明一堆全局变量即可将更改还原为表单的最佳方法是什么。

编辑:

大家好,感谢您的帮助,但经过研究,我找到了答案。由于我将所有这些表单的控件值存储到 My.Settings 中,我需要做的就是使用

My.Settings.Save() 

在接受按钮点击事件和

My.Settings.Reload()
Me.Close()

关于关闭按钮事件。

【问题讨论】:

    标签: .net vb.net visual-studio-2010


    【解决方案1】:

    您对表单的总体设计是什么?如果您必须关闭表单,您不能直接关闭它而不保存吗?

    如果您在表单上有数据绑定控件,您最终可以执行 dataSource.RejectChanges...

    【讨论】:

    • 表单只包含一些文本框、复选框和数字上下。
    • 然后不保存就关闭,反正关闭了为什么还要恢复以前的值?
    • 我只是想使用取消按钮来取消对表单所做的任何更改。我在按钮单击事件上使用 Me.Close() 来关闭表单,但它仍然保存所做的更改。
    • 您可以编辑问题并在表格中显示您在做什么吗?至少保存数据的位置和方式,关闭按钮的单击处理程序和表单加载事件,例如...
    【解决方案2】:

    保存原始值是正确的想法。您可以将它们保存在表单类的私有变量中,而不是将它们保存在全局级别。您可能希望将它们全部存储在一个数据结构中——哈希映射是一个不错的选择。

    【讨论】:

    • 在更面向对象的方法中,如果您打开表单以显示对象 Person 的详细信息,您已经拥有 Person 业务实体,其中包含他的所有数据,只是不更改此类对象中的任何内容,并且关闭表单就可以了。
    【解决方案3】:

    一种方法是在某些数据源/对象和您的表单之间使用 DataBindings。这将使您能够使用RejectChanges“回滚”潜在的更改。

    这里是有关 DataSet.RejectChanges 的更多信息(在这种情况下,DataSet 将包含您的数据)。 http://msdn.microsoft.com/en-us/library/system.data.dataset.rejectchanges.aspx

    【讨论】:

      【解决方案4】:

      大家好,感谢您的帮助,但经过研究,我找到了答案。由于我将所有这些表单的控件值存储到 My.Settings 中,我需要做的就是使用

      我的.Settings.Save()

      在接受按钮点击事件和

      我的.Settings.Reload() 我.Close()

      关于关闭按钮事件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        • 2011-12-22
        • 1970-01-01
        • 2013-07-21
        • 2013-10-02
        相关资源
        最近更新 更多