0

如何在 C# 中同步 form1 和 form2 中的列表框项?即当我在form1的列表框中添加一个项目时,将其添加到同时放置在form2中的列表框中。

请帮我。谢谢。

4

1 回答 1

1

最简单(也是最好)的方法是将两个ListBoxes'(甚至 3、4 或更多)绑定DataSource到同一个。我们必须使用BindingList<>而不是List来受益于通知集合更改的能力。

BindingList<object> listData = new BindingList<object>();
listBox1.DataSource = listData;
public void ShowForm2(){
  ListBox list = new ListBox();
  list.DataSource = listData;
  Form f = new Form() { BindingContext = this.BindingContext };//Set BindingContext the same to synchronize tracking item in both listBoxes.
  list.Parent = f;
  f.Show();
}
//This is used to add new item to the source
public void AddItem(object item){
   listData.Add(item);
}
//This is used to remove an item from the source
public void RemoveItem(object item){
   listData.Remove(item);
}
//This is used to remove an item by index from the source
public void RemoveItemAt(int index){
   listData.RemoveAt(index);
}

尝试自己向表单添加控件。调用ShowForm2()以显示form2。然后尝试调用AddItem添加一些项目进行测试。AddItem("item string")通常我们为列表框 ( )添加一个字符串作为新项目。

于 2013-08-31T16:39:23.463 回答