2011-07-25 398 views
1

我有鑄造問題與MdiChildren問題與鑄造MdiChildren

這工作:

MyForm mf = (MyForm)this.ActiveMdiChild; 

這不起作用:

MyForm[] mfs = (MyForm[])this.MdiChildren; 

在父窗體的所有形式的MyForm情況,但我不能成功地扮演他們。這意味着我不能使用MyForm提供的任何方法,因爲它們只是Form對象。我能做些什麼來糾正這個問題?

+0

爲什麼你需要從MdiChildren一個單獨的集合(陣列)?爲什麼不迭代該集合並根據需要單獨進行投射? –

回答

2

MdiChildren屬性返回Form實例的數組,這是不一樣的東西(和不能直接轉換爲)MyForm實例的數組。

您可以使用LINQ的Cast()方法進行顯式轉換:

MyForm[] mfs = this.MdiChildren.Cast<MyForm>().ToArray(); 
+0

謝謝你這個作品太棒了! – Satanfx55

1

下面是你如何做到這一點;

IEnumerable<MyForm> mfs = this.MdiChildren.Cast<MyForm>();