将值传递回原始形式

时间:2010-10-10 20:24:54

标签: c# winforms

我有两种形式:Form1和Form2。我可以通过调用一个新的Form2并传入值来获取Form1中List的内容到Form2中的另一个List。我更新了form2中的List,从中删除了一个项目。如何将Form2列表的内容传递回Form1中的原始列表? Form1是应用程序运行时出现的第一个表单,因此我不想调用表单的新实例。

2 个答案:

答案 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;
相关问题