我在MDI中有多种形式。我创造了几次相同的孩子,例如3次。我有一个我想要发送给所选孩子的数据,但它总是将数据发送给最新的孩子。
有示例代码:
f13 = new Excel_form(this, Convert.ToInt16(words[1].Substring(0, words[1].Length - 1)));
f13.MdiParent = this;
f13.FormClosed += new FormClosedEventHandler(f13_FormClosed);
f13.Show();
发送数据的功能:
f13.Odebrane(odebrane, ktory_form_pyta);
我想将数据发送到我自己选择的表单中。像这样:
Form[] children = this.MdiChildren;
children[CHOSEN_CHILD].WindowState = FormWindowState.Normal;
适用于WindowState,但不适用于发送数据。 有可能吗?
答案 0 :(得分:1)
它应该被转换为Form的类。
MdiChildren是“Form”的集合,它没有您尝试使用的方法。
像(children[CHOSEN_CHILD] as Excel_form).Odebrane(odebrane, ktory_form_pyta);
答案 1 :(得分:0)
您可以获取所有表单,迭代它们,然后通过Tag找到特定表单。
这是您创建新孩子的方式:
f13 = new Excel_form(this, Convert.ToInt16(words[1].Substring(0, words[1].Length - 1)));
f13.MdiParent = this;
f13.Tag = 1; // int, string... whatever you want, Tag is object type.
f13.FormClosed += new FormClosedEventHandler(f13_FormClosed);
f13.Show();
迭代并找到具体的一个:
Form[] children = this.MdiChildren;
foreach (Form child in children)
{
if(Convert.ToInt32(child.Tag) == 1) // Do something
else // Do something else
}