我有鑄造問題與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一個單獨的集合(陣列)?爲什麼不迭代該集合並根據需要單獨進行投射? –