如何保存表单的状态?

时间:2014-04-23 06:07:52

标签: c# .net windows winforms button

我已经构建了一个包含某些表单的Windows表单应用程序。我想在某个表单上创建一个按钮来保存其状态。

例如,如果我有一个用户输入的文本框" Hello"并按下保存按钮,当他回到此表格时,文本框仍然会说"你好"。我希望它只发生在程序的相同执行中,这意味着当程序关闭并重新打开时,文本框不会说" Hello"不再(这就是为什么设置不符合我的需要我相信,因为他们保持执行之间的变化)。

2 个答案:

答案 0 :(得分:3)

由于您只希望表单在应用程序运行时保持其状态,因此解决方案非常简单:永远不要关闭表单,只需隐藏它即可。当您准备再次显示它时,请显示它。它将重新出现在屏幕上,一切都与它完全一样。 (当然,除非您循环控制并重置其属性。)

在最简单的情况下,您可以通过将this.Close的调用替换为this.Hide来实现此目的。但它可能比这更复杂,因为用户可以用大红色X关闭你的表单。为了确保所有关闭表单的尝试被隐秘地重新路由,因为隐藏表单的请求需要一些小的技巧:

private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
    if (e.CloseReason == CloseReason.UserClosing)
    {
        e.Cancel = true;  // cancel the request to close
        this.Hide();      // hide the form instead
    }
}

请注意,此代码会检查关闭原因,并确保它是用户启动的关闭请求。这是非常重要的。如果省略此部分,则无法以编程方式关闭表单!

答案 1 :(得分:0)

将您的数据存储在静态变量中,它们将一直存在,直到您关闭程序。

static string textboxText = textbox1.text;