我遇到MdiChildren
的投射问题。
这有效:
MyForm mf = (MyForm)this.ActiveMdiChild;
这不起作用:
MyForm[] mfs = (MyForm[])this.MdiChildren;
父表单中的所有表单都是MyForm
的实例,但我无法成功投出它们。这意味着我不能使用MyForm
提供的任何方法,因为它们只是Form对象。我该怎么做才能解决这个问题?
答案 0 :(得分:2)
MdiChildren属性返回Form
个实例的数组,这与MyForm
个实例的数组不同(并且不能直接转换为)。
您可以使用LINQ的Cast()方法执行显式转换:
MyForm[] mfs = this.MdiChildren.Cast<MyForm>().ToArray();
答案 1 :(得分:1)
以下是如何做到这一点;
IEnumerable<MyForm> mfs = this.MdiChildren.Cast<MyForm>();