关闭后在对话框中保留值 - 窗口窗体 c#

本文关键字:窗口 窗体 保留 对话框 | 更新日期: 2023-09-27 17:56:17

我对C#和Windows表单比较陌生,所以请原谅我这个看似简单的问题。

我有一个Windows应用程序,它有一个对话框,打开时包含带有一些默认值的文本框。 这些可以根据用户要使用的内容进行更改。 然后,此对话框中的值以及主窗体上的内容将用于创建 XML 文件。 我遇到的问题是,如果我再次打开对话框以更改同一会话中的任何值,则原始值存在,而不是任何新值。

如何让它保留在该特定会话中已更改的值?

关闭后在对话框中保留值 - 窗口窗体 c#

如果要在

下次打开对话框时查看用户的值,则需要将这些值保存在某个位置,然后在下次显示对话框时(通常在Form_Load或Form_Show上)重新加载它们。当然,在退出之前,您需要保存值(可能以Form_Close为单位?

保存这些值的位置由您决定。您可以将它们保存在表单类中的一些静态变量中,如果您希望它仅用于程序的运行。或者,如果要在下次运行程序时重新加载这些设置,则可以存储在配置文件、注册表、独立存储等中。

如果我

正确理解了这个问题,听起来你需要使用后台变量和 TextChanged 事件(尽管我更喜欢 KeyDown 事件,我的代码使用它)。例如,让我们将文本框称为 TextBox1。然后,您可以创建一个名为字符串 Temp 的全局变量并像这样使用它:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    temp = textBox1.Text;
}

关闭对话框后,您可以在其他地方使用该变量,在您的情况下,听起来您希望将其发送到 XML。另一种选择是使用 keydown 事件来保留文本值的临时 XML 文件。这显然在计算上更昂贵,但除非这将在处理器有限的环境中使用,否则它并不是什么大问题。我要提到的最后一件事是,如果您使用多线程并传递该临时值的值,您可能会遇到麻烦。查看在其他线程上使用变量,而不是您开始使用的变量,以获得帮助。

如果要

保留用户上次使用对话框时输入的值,则需要在某处保留对对话框的引用。

此外,如果您在 Load 事件的对话框中设置了一些数据,它可能会擦除用户以前输入的数据。如果没有看到您的代码,我目前无法说出更多。