如何保存表单的状态

本文关键字:表单 状态 保存 何保存 | 更新日期: 2023-09-27 17:59:32

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

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

如何保存表单的状态

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

在最简单的情况下,您可以通过用this.Hide替换对this.Close的调用来实现这一点。但它可能比这更复杂,因为用户可以用红色的大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
    }
}

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

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

static string textboxText = textbox1.text;