0

我有一个 MDI Parent,包含一个 MenuStrip。当我单击其中一个菜单时,会同时显示两个子表单。

我的一个 ChildForm 上有一个TextBox和一个发送 按钮。当我在该 TextBox 中输入内容并单击Send Button时,我需要在我的第二个子表单的 TextBox 中显示该值。

我所做的是,我在第二个子表单中编写了一个公共函数,并尝试通过在发送按钮单击事件上创建第二个表单的对象来调用它。当我在该公共函数中放置断点时,我发现控件在单击“发送”按钮时正在流经该公共函数。但是不显示传递的值。而且,我知道这不是做到这一点的标准方法。

任何示例脚本寻求帮助?谢谢。

4

2 回答 2

0

我可能误读了您的问题,但似乎在您的发送按钮的 Click 事件中,您正在创建一个新实例SecondForm并调用其函数。如果您在此处创建表单的新实例,那么它与您的 MDI 父表单中已经存在的表单实例不同(这就是似乎没有发生任何事情的原因)。

您需要做的是获取对SecondForm已在 MDI 父窗体中的实例的引用,并调用公共方法。您可以通过父表单的MdiChildren集合获取对第二个表单的引用,如下所示:

SecondForm f2 = (SecondForm)this.MdiChildren[1]; // second form in collection
f2.PublicMethod();
于 2010-03-14T07:27:31.673 回答
0

谢谢回复。

我尝试了您的代码,但给出了错误:索引超出了数组的范围。

我稍微更改了代码,以使其正常工作,如下所示:

SecondForm f2= (SecondForm)this.MdiParent.MdiChildren[1];
        f2.PublicMethod(some_value_to_pass);

谢谢您的帮助。:-)

于 2010-03-14T08:44:45.843 回答