Это встроенный механизм для этого, называемый Application Settings
.
Итак, у вас есть форма с двумя метками, из которых Label2
содержит значение.Кнопка button1
увеличивает значение.
![design](https://i.stack.imgur.com/rXVBf.png)
Перейдите к настройкам проекта и создайте одну настройку string
с именем CounterText
.
.
![settings](https://i.stack.imgur.com/QxkkG.png)
Теперь нам нужны три обработчика событий для формы.
Когда форма загружается, мы хотим подключитьсодержимое label2
с настройкой CounterText
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
// Update the label automatically from the setting
label2.DataBindings.Add("Text", Properties.Settings.Default, "CounterText", true,
DataSourceUpdateMode.OnPropertyChanged);
}
Когда форма закрывается, вы хотите сохранить настройки
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
// Save the settings before exit
Properties.Settings.Default.Save();
}
При нажатии кнопки вы хотите увеличить значение в настройках
private void button1_Click(object sender, EventArgs e)
{
// Read the setting value (string->int)
if (int.TryParse(Properties.Settings.Default.CounterText, out int num))
{
// Increment value
num++;
// Update the setting (int->string)
Properties.Settings.Default.CounterText = num.ToString();
// The system will automatically update the label text.
}
}
Теперь каждый раз, когда запускается форма, она будет читать настройки приложения и устанавливать значение текстаобозначить правильно.Также при нажатии кнопки и изменении настройки метка обновляется автоматически, поскольку, если определено DataBindings
.
![screenshot](https://i.stack.imgur.com/0bk35.png)
Чтов фоновом режиме происходит то, что файл XML сохраняется в %appdata%\Local\WindowsFormsApp1\1.0.0.0\user.config
или как бы там ни было название вашего приложения.Содержимое выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<userSettings>
<WindowsFormsApp1.Properties.Settings>
<setting name="CounterText" serializeAs="String">
<value>3</value>
</setting>
</WindowsFormsApp1.Properties.Settings>
</userSettings>
</configuration>
В этом случае ясно видно, что значение CounterText сохраняется как 3.Этот файл считывается при запуске программы (автоматически) и обновляется при ее завершении (вручную).