Я заполняю список1 списком. Данные могут быть отправлены во второй список 2 и обратно.
![enter image description here](https://i.stack.imgur.com/9KXHz.png)
Как сохранить настройки свойств? и когда вы попробуете код, вы получите следующую ошибку:
System.ArgumentException: 'Коллекция элементов не может быть изменена, если установлено свойство DataSource.'
это как-то связано с listbox1.items.clear (); Как правильно это настроить?
public partial class Form1 : Form
{
List<string> l2;
string selectedItemText;
int SelectedIndex;
public Form1()
{
InitializeComponent();
l2 = new List<string>();
l2.Add("1");
l2.Add("2");
l2.Add("3");
l2.Add("4");
l2.Add("5");
listBox1.DataSource = l2;
}
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.Clear();
foreach (object item in Properties.Settings.Default.listSave)
{
listBox1.Items.Add(item);
}
listBox2.Items.Clear();
foreach (object item in Properties.Settings.Default.listSave2)
{
listBox2.Items.Add(item);
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
Properties.Settings.Default.listSave.Clear();
Properties.Settings.Default.listSave2.Clear();
foreach (object item in listBox1.Items)
{
Properties.Settings.Default.listSave.Add(item.ToString());
}
foreach (object item in listBox2.Items)
{
Properties.Settings.Default.listSave2.Add(item.ToString());
}
Properties.Settings.Default.Save();
}
private void button2_Click_1(object sender, EventArgs e)
{
selectedItemText = listBox1.SelectedItem.ToString();
SelectedIndex = listBox1.SelectedIndex;
listBox2.Items.Add(selectedItemText);
if (l2 != null)
{
l2.RemoveAt(SelectedIndex);
}
DataBindings();
}
private void DataBindings()
{
listBox1.DataSource = null;
listBox1.DataSource = l2;
}
private void button4_Click(object sender, EventArgs e)
{
selectedItemText = listBox2.SelectedItem.ToString();
SelectedIndex = listBox2.SelectedIndex;
l2.Add(selectedItemText);
listBox2.Items.RemoveAt(listBox2.Items.IndexOf(listBox2.SelectedItem));
DataBindings();
}
}