如何在 C# 中同步 form1 和 form2 中的列表框项?即当我在form1的列表框中添加一个项目时,将其添加到同时放置在form2中的列表框中。
请帮我。谢谢。
最简单(也是最好)的方法是将两个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")
通常我们为列表框 ( )添加一个字符串作为新项目。