0

我有一个 Windows 应用程序。

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

  public NetspotXMLLibV1 XMLLib;

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

它还有一个自定义控件。

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

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

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

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

IE

form1.XMLLib.Add(ItemForProcessing);

或者

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

请帮忙

4

2 回答 2

0

几种方法:

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

2) 将对父表单的引用传递给表单(可能在构建时)。然后子窗体可以调用一些方法或在父窗体上设置一些属性。请注意,这不是首选,因为它将子表单耦合到父表单,这意味着它不能从任何其他表单调用。

于 2012-03-21T13:34:05.860 回答
0

使用ShowDialog 重载,您可以将新表单的所有者传递给它:

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

在 Form2 中:

((Form1)Owner).MyProperty = 11;
于 2012-03-21T13:38:08.103 回答