我有一个MDI Parent,包含一个MenuStrip。当我点击其中一个菜单时,会同时显示两个子表单。
我的一个ChildForm上有 TextBox 和发送 按钮。当我在TextBox中键入内容并单击发送 按钮时,我需要在我的第二个子表单的TextBox中显示该值。
我所做的是,我在第二个子窗体中编写了一个公共函数,并尝试通过在发送按钮单击事件上创建第二个窗体的对象来调用它。当我在该公共函数中放置断点时,我发现控件正在流过该公共函数,并且按下了“发送”按钮。但是不显示传递的值。并且,我知道这不是标准的方法。
任何帮助示例脚本?感谢。
答案 0 :(得分:0)
我可能会误解您的问题,但似乎在您的“发送”按钮的Click事件中,您正在创建SecondForm
的新实例并调用其功能。如果您在此处创建表单的新实例,那么它与已经位于您的MDI父表单中的表单的实例不同(这就是为什么似乎没有发生任何事情的原因)。
您需要做的是获取对MDI父表单中已有的SecondForm
实例的引用,并调用其公共方法。您可以通过父表单的MdiChildren
集合获取对第二个表单的引用,如下所示:
SecondForm f2 = (SecondForm)this.MdiChildren[1]; // second form in collection
f2.PublicMethod();
答案 1 :(得分:0)
感谢您的回复。
我尝试了你的代码,但却给出了一个错误:索引超出了数组的范围。
我稍微更改了代码,使其正常工作,如下所示:
SecondForm f2= (SecondForm)this.MdiParent.MdiChildren[1];
f2.PublicMethod(some_value_to_pass);
感谢您的帮助。 : - )