我有铸造问题与MdiChildren
。问题与铸造MdiChildren
这工作:
MyForm mf = (MyForm)this.ActiveMdiChild;
这不起作用:
MyForm[] mfs = (MyForm[])this.MdiChildren;
在父窗体的所有形式的MyForm
情况,但我不能成功地扮演他们。这意味着我不能使用MyForm
提供的任何方法,因为它们只是Form对象。我能做些什么来纠正这个问题?
我有铸造问题与MdiChildren
。问题与铸造MdiChildren
这工作:
MyForm mf = (MyForm)this.ActiveMdiChild;
这不起作用:
MyForm[] mfs = (MyForm[])this.MdiChildren;
在父窗体的所有形式的MyForm
情况,但我不能成功地扮演他们。这意味着我不能使用MyForm
提供的任何方法,因为它们只是Form对象。我能做些什么来纠正这个问题?
的MdiChildren属性返回Form
实例的数组,这是不一样的东西(和不能直接转换为)MyForm
实例的数组。
您可以使用LINQ的Cast()方法进行显式转换:
MyForm[] mfs = this.MdiChildren.Cast<MyForm>().ToArray();
谢谢你这个作品太棒了! – Satanfx55
下面是你如何做到这一点;
IEnumerable<MyForm> mfs = this.MdiChildren.Cast<MyForm>();
为什么你需要从MdiChildren一个单独的集合(阵列)?为什么不迭代该集合并根据需要单独进行投射? –