C# winform listbox,同步数据等问题。

三个窗口,第一个窗口有listbox,第二个窗口每个标签都是第一个窗口的单个item内容(已经可以同步两个值),第三个窗口的listbox要同步第一个窗口的listbox的内容,并且选中两个listbox中的值,再点击selection选中内容要显示到Team后面的两个label,对应的下面可以输入进球数和得分。点击saving,输入值会自动加入到第二窗口的相应队伍的进球总数和得分总数。
图片说明
第一个窗口
图片说明
第二个窗口
图片说明
第三个窗口

只需要简单完成功能就行。谢谢,大神!

思路是可以在selectionchaged事件里设置另一个listbox的选中项。具体代码就不写了。

之前每次回答你,都给出完整代码,截图,从来没有采纳,如果希望详细回答,请先把所有的回答采纳了。
https://ask.csdn.net/questions/759366
https://ask.csdn.net/questions/759361

顶一个全局变量的DataTalbe,所有的操作都针对DataTable即可。

private void buttonShow_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Parent = this;
form2.Show();
}

Form2中
private void buttonAdd_Click(object sender, EventArgs e)
{
Form1 form1 = this.Parent as Form1;
form1.listBox1.Items.Add(listBox2.SelectedItem);
//form1.Show(); //加这句可以显示出来,但不是我想要的效果
//form1.Refresh();
}

这个您不能这样干, 逻辑有问题而且不好操作。 您可以把ListBox看着显示窗口,把所有数据存在一个Array数组中,如果按照您现在的方
法,当删除ListBox1的数据时ListBox2将不容易同步ListBox1的数据。 ListBox1 ListBox2 ListBox3......都应该指向同一个数组Array, 这样
当ListBox1数据时,实际删除的是Array的数据, 此时ListBox2刷新一下依然是Array的数据,使用委托可以同时更新显示, 即使不更新,在
选择ListBox2时做个判断处理也能同步。这样才不会出现数据重复复制引起的错误信息。
给你一个小例子:

 //属性类
    public class Value
    {
        //属性
        public string name { get; set; }
        public int goals { get; set; }
        public int scores { get; set; }

        //构造函数
        public Value(string n, int g, int s)
        {
            name = n;
            goals = g;
            scores = s;
        }
    }

    //数据集合 单列模式
    public sealed class ListValue
    {
        //数据保存位置
        public List<Value> allValue = new List<Value>();
        private static ListValue all;
        //防止重复构造
        private ListValue() { }

        public static ListValue GetValue()
        {
            if (all == null)
            {
                all = new ListValue();
            }
            return all;
        }
    }

         public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //添加数据
            Value v = new Value("test", 20, 50);
            //这个是保存数据的类
            ListValue vl = ListValue.GetValue();
            vl.allValue.Add(v);

            //遍历填充ListBox
            foreach(Value vs in vl.allValue)
            {
                listBox1.Items.Add(vs.name);
            }
        }
    }