我有两种形式:Form1和Form2。我可以通过调用一个新的Form2并传入值来获取Form1中List的内容到Form2中的另一个List。我更新了form2中的List,从中删除了一个项目。如何将Form2列表的内容传递回Form1中的原始列表? Form1是应用程序运行时出现的第一个表单,因此我不想调用表单的新实例。
答案 0 :(得分:2)
我建议你在Form2中实现一个返回相关数据的属性,并让Form1读取该属性,“拉”Form2中的数据。
这比将Form2“推送”回Form1更好,因为它只保留了依赖关系。
答案 1 :(得分:1)
您可以将Form1
的初始实例传递给Form2
,并使用此引用将数据传回Form1
。
// A property `Form2`
public Form1 RefToForm1 { get; set; }
// On form 1, after initializing `Form2`:
Form2 frm2 = new Form2();
frm2.RefToForm1 = this;
注意:
有比上面更好的解决方案(它快速而且肮脏)。更好的选择是在Form2
上创建一个属性,其中包含Form1
中所需的数据类型,并通过它访问数据:
// A property `Form2`
public List<int> Form2DataForForm1 { get; set; }
// On form 1
var dataFromForm2 = frm2.Form2DataForForm1;