using System.ComponentModel;
using System.Diagnostics;
namespace ReadSettingList
{
public partial class Form1 : Form
{
BindingSource bs = new BindingSource();
public Form1()
{
InitializeComponent();
bs.DataSource = Properties.Settings.Default.testlist;
listBox1.DataSource = bs;
}
private void button1_Click(object sender, EventArgs e)
{
if (isItemExsit())
{
MessageBox.Show("记录已经存在,请输入一个不同的名称","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
}
if (textBox1.Text.Trim().Length==0)
{
MessageBox.Show("不能输入空值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Properties.Settings.Default.testlist.Add(textBox1.Text);
Properties.Settings.Default.Save();
listBox1.DataSource = bs;
bs.ResetBindings(false);
}
private bool isItemExsit()
{
string str = textBox1.Text;
return Properties.Settings.Default.testlist.IndexOf(str) !=-1;
}
private void button2_Click(object sender, EventArgs e)
{
}
int listItem = -1;
private void listBox1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
int index = listBox1.IndexFromPoint(e.Location);
if (index >= 0)
{
listItem = index;
listBox1.SelectedIndex = index;
this.contextMenuStrip1.Show(this.listBox1, e.Location);
}
}
}
private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
Properties.Settings.Default.testlist.RemoveAt(listItem);
Properties.Settings.Default.Save();
listBox1.DataSource = bs;
bs.ResetBindings(false);
}
}
}
关键的部分是使用BindingSource bs = new BindingSource(); 然后
bs.DataSource = Properties.Settings.Default.testlist;
listBox1.DataSource = bs;
也就是把BingdingSource 作为ListBox和Properties.Settings.Default.testlist 中间部件。