Сохранить системное свойство при выходе из программы

1

просматривал и не может найти ничего, что будет полностью связано с тем, что я пытаюсь сделать здесь. Я создал системное свойство в приложении WPF под названием "firstrun", которое является bool. Попытка заставить программу читать, если она истинна, а затем действовать по-разному при первом запуске программы. Но затем, когда он закрыт, он устанавливает значение false. Мой код подобен этому, и он по-прежнему правдивый каждый раз, когда я запускаю программу:

 public partial class MainWindow : Window
{

    bool firstRun = Properties.Settings.Default.FirstRun;

    public MainWindow()
    {
        InitializeComponent();
        if (firstRun)
        {
            MessageBox.Show("First run");
        }
        else
        {
            // Run rest of program
            MessageBox.Show("This is not the first run");
        }
    }

    private void windowClosing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        this.firstRun = false;
        Settings.Default.Save();
    }


}
}
  • 0
    Как ссылка на windowClosing ? Вы уверены, что зарегистрировали обработчик события?
  • 1
    Вы меняете значение в элементе MainWindow (bool firstRun). Вам нужно изменить значение свойства в настройках (Properties.Settings.Default.FirstRun) и затем вызвать Settings.Default.Save (); ...
Показать ещё 1 комментарий
Теги:
wpf

1 ответ

3
Лучший ответ

вы меняете значение в элементе MainWindow:

bool firstRun = Properties.Settings.Default.FirstRun;

Вам нужно изменить значение свойства в настройках (Properties.Settings.Default.FirstRun), а затем вызвать Settings.Default.Save() следующим образом:

private void windowClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
   Properties.Settings.Default.FirstRun = false;
   Settings.Default.Save();
}

Для этой функции вам нужно изменить область в файле настроек из значения "Приложение в пользователь". В свойствах пользовательской области есть getter и setter

  • 0
    Простое сообщение: не назначайте переменные для таких вещей, чтобы не допустить путаницы.
  • 0
    'Properties.Settings.Default.FirstRun = false;' только для чтения?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню