从子窗口保存父窗口的数据?

时间:2012-03-21 13:28:09

标签: c# .net windows showdialog

我有一个Windows应用程序。

Windows应用程序上有我们的XML库。

  public NetspotXMLLibV1 XMLLib;

    public Form1()
    {
        InitializeComponent();
        XMLLib = new XmlLibrary.NetspotXMLLibV1();
    }

它还有一个自定义控件。

该自定义控件上有一个按钮

SelectWidgitWindow widgit = new SelectWidgitWindow();
widgit.ShowDialog();

单击按钮时,会打开新窗口。我在这个新窗口上做了一些事情。当我单击新窗口上的按钮时,我想在Form1窗口中保存内容

如何在新窗口(SelectWidgitWindow)上访问它?

form1.XMLLib.Add(ItemForProcessing);

Windows(1).XMLLib.Add(ItemForProcessing);

请帮忙

2 个答案:

答案 0 :(得分:0)

几种方式:

1)公开您希望父表单提取的项目作为子表单的属性。在父表单的代码中,当ShowDialog返回时,您可以从属性中获取要保存的值。

2)将对父表单的引用传递给表单(可能在构造时)。然后子表单可以调用某个方法或在父表单上设置一些属性。请注意,这是首选,因为它将子项与父表单相关联,这意味着无法从任何其他表单调用它。

答案 1 :(得分:0)

使用ShowDialog overload可以将所有者传递给新表单:

Form2 f = new Form2();
f.ShowDialog(this.Parent);

并在Form2中:

((Form1)Owner).MyProperty = 11;