Как я могу кодировать, чтобы сохранить данные даже после их закрытия? - PullRequest
1 голос
/ 25 мая 2019

Я относительно новичок в c # и winforms, мне нужна помощь в кодировании, чтобы решить эту проблему.Я создал winform с 4-мя текстовыми полями и, используя кнопку сохранения, я сериализовал эти данные в xml. Реальная проблема заключается в том, как десериализовать данные, чтобы элементы возвращались в соответствующие текстовые поля.и если я закрыл и открыл все приложение, данные в текстовых полях должны быть сохранены.

цель: как сделать так, чтобы данные сохранялись в приложении (текстовых полях) даже после его закрытия и повторного открытия.здесь я не должен использовать какую-либо базу данных

1 Ответ

0 голосов
/ 25 мая 2019

Единственный способ добиться этого - привязать данные к переменной Application Settings.

  1. Привязать каждое текстовое поле к своей собственной переменной Application Settings, стараясь создать их как пользовательскую область (по умолчанию), а не область приложения.
  2. Зарегистрируйте обработчик события Form_Closing и сохраните настройки.

Ниже приводится процедура события Form_Closing из производственной программы на C #, которую я написал в2005, и использовать ежедневно.

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
...