0

Есть форма с ComboBox, TextBox и кнопкой. В TextBox делаем запись и с помощью кнопки передаем текст в ComboBox.

введите сюда описание изображения введите сюда описание изображения

Я хочу сделать сохранение данных в ComboBox. Чтобы при следующем запуске у нас остались ранее записанные марки. Я знаю что можно сделать через бд или текстовый файл, но хотелось бы обойтись без них.

Ownt
  • 23
  • Это winforms? Пожалуйста уточните необходимые детали, отредактируйте вопрос. К тегу обработка-данных вопрос как именно относится? – aepot Nov 19 '21 at 11:23
  • Да, это winforms, тег обработка-данных был добавлен так как в программе идет работа с данными. – Ownt Nov 19 '21 at 11:30
  • Вы не поверите, но совершенно в любой программе есть работа с данными. – aepot Nov 19 '21 at 11:31

1 Answers1

0

Чтобы сохранить данные в ComboBox я использовал Settings.settings. В файле Settings.settings имя "userText1" имеет тип "string", а "userComboBox" имеет тип "System.Collections.Specialized.StringCollection".

    public MainForm()
    {
        InitializeComponent();
    StringCollection coll = Properties.Settings.Default.userComboBox;
    foreach (var item in coll)
        markaComboBox.Items.Add(item);
}

private void NewMarkaButton_Click(object sender, EventArgs e)
{
    markaComboBox.Items.Add(newMarkaTextBox.Text);

    Properties.Settings.Default.userText1 = newMarkaTextBox.Text;

    StringCollection coll = new StringCollection();
    coll.AddRange(markaComboBox.Items.Cast<string>().ToArray());
    Properties.Settings.Default.userComboBox = coll;
    Properties.Settings.Default.Save();
}

Метод "MainForm" позволяет загрузить данные из userComboBox в markaComboBox.

Метод "NewMarkaButton_Click" создает запись в ComboBox'e и сохраняет изменения.

https://www.cyberforum.ru/windows-forms/thread2317217.html

Ownt
  • 23
  • StringCollection - это что-то очень древнее, так уже не пишет никто давно. Перепишите на List<string>. – aepot Nov 19 '21 at 11:14
  • Поизучал вопрос, вы используете Settings не по назначению. Settings используется для хранения настроек приложения, то есть практически фиксированного набора данных. Оно просто не предназначено для сохранения пользовательской информации. Параметры приложения для Windows Forms – aepot Nov 19 '21 at 11:35
  • Если использовать списки, то тогда не обойтись без файла, в котором хранятся значения нужные для ComboBox. Или я что-то не верно понял? – Ownt Nov 19 '21 at 11:38
  • Окей, пусть эта StringCollection живет, если речь о Settings и объехать это никак. Microsoft уже давно сознались, что это костыли и рано или поздно специализированные коллекции будут уничтожены в пользу обобщенных. Вот, почитайте еще это, вдруг пригодится. – aepot Nov 19 '21 at 11:41
  • 1
    Спасибо. Попытаюсь сделать через хранение записей в файле. – Ownt Nov 19 '21 at 11:50