Имеется ListBox фильтра вложений. Для сохранения настроек используется данный код:
Properties.Settings.Default["Path"] = tbPath.Text;
Properties.Settings.Default["SiteName"] = cbxSite.Text;
Properties.Settings.Default["MailAdress"] = tbMail.Text;
Properties.Settings.Default["MailPassword"] = tbMailPassword.Text;
Properties.Settings.Default["Latency"] = Convert.ToInt32(cbxLatency.Text);
Properties.Settings.Default["DeleteMails"] = cbDelete.Checked;
Вопрос такой, использую для фильтра System.Collections.Specialized.StringCollection в настройках, но не могу понять как сохранить их.
Для выгрузки данных с настроек использую данный код:
tbPath.Text = Properties.Settings.Default["Path"].ToString();
cbxSite.Text = Properties.Settings.Default["SiteName"].ToString();
tbMail.Text = Properties.Settings.Default["MailAdress"].ToString();
tbMailPassword.Text = Properties.Settings.Default["MailPassword"].ToString();
cbxLatency.Text = Properties.Settings.Default["Latency"].ToString();
cbDelete.Checked = Convert.ToBoolean(Properties.Settings.Default["DeleteMails"]);
И опять-таки не могу понять как выгружать тип данных StringCollection.
Проблема решилась парочкой циклов foreach
Оставляю код тем кому может пригодится:
Заполнение данных:
foreach (string item in lbFilter.Items)
{
Properties.Settings.Default.Filter.Add(item);
}
Properties.Settings.Default.Save();
Выгрузка данных:
foreach(string s in Properties.Settings.Default.Filter)
{
if (!lbFilter.Items.Contains(s))
{
lbFilter.Items.Add(s);
}
}
Properties.Settings.Default.Filter.Clear();
Для примера возьмем такой набор контролов
Создадим для них соответствующие переменные. Обратите внимание на типы переменных.
Тогда читать и сохранять настройки можно так
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
_textBox.Text = Properties.Settings.Default.textBox;
_checkBox.Checked = Properties.Settings.Default.checkBox;
_comboBox.SelectedIndex = Properties.Settings.Default.comboBox;
List<bool> values = Properties.Settings.Default.checkedList.OfType<string>()
.Select(s => s.Equals("1") ? true : false)
.ToList();
for (int i = 0; i < _checkedListBox.Items.Count; i++)
{
_checkedListBox.SetItemChecked(i, values[i]);
}
}
private void _buttonSave_Click(object sender, EventArgs e)
{
Properties.Settings.Default.textBox = _textBox.Text;
Properties.Settings.Default.checkBox = _checkBox.Checked;
Properties.Settings.Default.comboBox = _comboBox.SelectedIndex;
for (int i = 0; i < _checkedListBox.Items.Count; i++)
{
Properties.Settings.Default.checkedList[i] =
_checkedListBox.GetItemChecked(i) ? "1" : "0";
}
//сохраняем настройки
Properties.Settings.Default.Save();
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости