如何在C#中同步form1和form2中的列表框项? 即,当我在form1上的列表框中添加一个项目时,将其同时添加到form2中放置的列表框中。
请帮帮我。 感谢。
答案 0 :(得分: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")
)。