2013-08-31 19 views
0

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

请帮帮我。 谢谢。

+0

将它们设置为相同的数据绑定源 – Sayse

回答

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()以显示表格2。然后尝试拨打AddItem添加一些项目进行测试。通常我们添加一个字符串作为列表框的新项目(AddItem("item string"))。

+0

完美!谢谢。 – progfa

相关问题