#c#
#c#
Вопрос:
У меня есть текстовое поле, кнопка и поле
со списком, когда я нажимаю кнопку, я хочу, чтобы текст в текстовом поле добавлялся к элементам со списком
Вот мой код:
private void button1_Click(object sender, EventArgs e)
{
comboBox1.Items.Add(textBox1.Text);
}
Моя форма пока не открыта. Этот текст отображается в выпадающем списке, но когда я закрываю форму и снова открываю ее, текст больше не отображается в выпадающем списке.
Я хочу сохранить текст в элементах коллекции выпадающего списка. Я не хочу использовать базу данных.
Комментарии:
1. Где вы хотите их сохранить?
2. Вы должны использовать какое-то хранилище, которое может быть базой данных (таблицей), файлом на диске или, возможно, даже чем-то, что хранит данные в облаке. Это требует усилий, и вам нужно решить, какие усилия вы готовы потратить. Сказав это, исключение баз данных заранее не кажется мне очень мудрой позицией.
3. Поскольку может показаться, что вы просто работаете с некоторым текстом, вы также можете изучить простой текстовый файл или пользовательские настройки.
4. Вам действительно нужно изучить немного больше, потому что, похоже, вы предполагаете, что заполнение списка будет автоматически сохранено каким-то образом. У меня для вас новость, в C # этого не произойдет. Для его переноса в базу данных вам потребуется гораздо больше. Попробуйте освежить в памяти базы данных, как подключаться и как создавать, читать, обновлять и удалять (CRUD) данные.
Ответ №1:
Как упоминали другие в комментариях, вам необходимо понять и решить, где вы хотите сохранить свои значения.
Для целей моего примера я создал простой текстовый файл для хранения этих значений. Код считывает данные из файла и добавляет каждую строку в виде элемента в выпадающий список.
private void Form1_Load(object sender, EventArgs e)
{
// Read items from file into a string array
string[] items = System.IO.File.ReadAllLines(@"D:ComboBoxValues.txt");
// Add items to the comobobox when opening the form
comboBox1.Items.AddRange(items);
}
private void button1_Click(object sender, EventArgs e)
{
// Add your new value to the combobox
comboBox1.Items.Add(textBox1.Text);
// Put all existing comobo box items into a string array
string[] items = comboBox1.Items.OfType<string>().ToArray();
// Save the array of items to a text file (this will not append, it will re-write the file)
System.IO.File.WriteAllLines(@"D:ComboBoxValues.txt", items);
}
Возможно, это не самый элегантный способ сделать это, но с точки зрения предоставления вам понимания — этого должно быть более чем достаточно.
Ответ №2:
если вам не нравится использовать файловую систему, вы можете использовать настройки (но не рекомендуется использовать настройки для запоминания больших значений), проверьте эту ссылку, чтобы узнать, как создать новую настройку
private void Form1_Load(object sender, EventArgs e)
{
string[] strItems = Properties.Settings.Default.items.Split(", ");
for(int i = 0; i < strItems.length; i ) {
comboBox1.Items.Add(strItems[i]);
}
}
private void button1_Click(object sender, EventArgs e)
{
//add your new value to the combobox
comboBox1.Items.Add(textBox1.Text);
//put all existing combo box items into a string array
string[] items = comboBox1.Items.OfType<string>().ToArray();
for(int i = 0; i < items.length; i ) {
//I assumed you had an items key in your settings
if(i == items.length - 1) {
Properties.Settings.Default.items = value;
} else {
Properties.Settings.Default.items = value ", ";
}
}
//then you should to save your settings
Properties.Settings.Default.Save();
}