即使关闭数据,我该如何编码以保留数据?

时间:2019-05-25 06:45:36

标签: c# xml winforms serialization deserialization

我对c#和winforms比较陌生,我需要一些编码帮助来解决该问题。 我创建了一个带有4个文本框的winform,并使用一个保存按钮在xml中序列化了这些数据。实际的问题是:如何反序列化数据,因为这些项目将返回各自的文本框。如果我关闭并打开了整个应用程序,则文本框中的数据应保留。

objective:即使关闭并再次打开数据后,如何使数据保留在应用程序(文本框)中。在这里我不应该使用任何数据库

1 个答案:

答案 0 :(得分:0)

唯一的方法是将数据绑定到“应用程序设置”变量。

  1. 将每个文本框绑定到其自己的“应用程序设置”变量,注意将其创建为用户范围(默认)而不是应用程序范围。
  2. 注册一个Form_Closing事件处理程序,并保存设置。

以下是我在2005年编写的生产C#程序中的Form_Closing事件例程,该例程每天使用一次。

private void frmMain_FormClosing ( object sender , FormClosingEventArgs e )
{   // Update user settings, even if the cmdQuit_Click event was bypassed.
    if ( _intDesiredWidth > STRING_IS_EMPTY )
    {
        int intDefaultDesiredWidth;

        if ( int.TryParse ( Properties.Settings.Default.DesiredWidth , out intDefaultDesiredWidth ) )
        {
            if ( _intDesiredWidth != intDefaultDesiredWidth )
            {
                Properties.Settings.Default.DesiredWidth = _intDesiredWidth.ToString ( );
                Properties.Settings.Default.Save ( );   // Save only when there is something worth saving.
            }   // if ( _intDesiredWidth != intDefaultDesiredWidth )
        }   // if ( int.TryParse ( Properties.Settings.Default.DesiredWidth , out intDefaultDesiredWidth ) )
    }   // if ( _intDesiredWidth > STRING_IS_EMPTY )
}   // private void frmMain_FormClosing