2011-07-11 15 views
3

.net Compact Framework 2.0では、基本的にもう一方のフォームを親子化する別のフォームコントロール配列にフォームを追加できます。Compact Framework 3.5 Setフォームの親を設定する

すなわち_mainForm.Controls.Add(form);

これは例外で.NET CF 3.5と結果には許可されていません。

System.ArgumentException: Value does not fall within the expected range. at Microsoft.AGL.Common.MISC.HandleAr(PAL_ERROR ar) at System.Windows.Forms.Control._SetParent(Control ctlParent) at System.Windows.Forms.Control.set_Parent(Control value)

このための回避策や代替はありますか?私は別のフォーム上のパネルの中でフォームを親にすることができる必要があります。

+1

が、私はパネルに私はこの出くわした形 – grapkulec

答えて

5

私はこれがあなたの質問への答えが含まれていると思う:http://207.46.16.248/en-us/netframework/bb986636.aspx

特にこの部分:

System.Windows.Forms.Form.Parent

フォームは、もはや親にすることはできない説明。 .NET Compact Frameworkの1.0では

前行動
、フォームが子コントロールをサポートする他のコントロール に親することができます。 .NET Compact Framework 2.0では、フォーム は他のフォームの親となる可能性があります。 .NETコンパクト Frameworkバージョン3.5では

新しい動作

、フォームは親にすることはできません。

+0

の親を行うことが可能であるとは思わない、.NET CFに別のフォームにフォームコントロールをコピーするには、次の方法を使用することができます。私は回避策や代替の方法を見つけることを望んでいます。 – JoelHess

+2

さて、あなたのフォームがペアレント化される必要があるのはなぜですか?私はCF 3.5を扱っていた頃でしたが、私のフォームに明白な魔法をする必要があった私のアプリケーションのフォームに関する問題は思い出しません。 – grapkulec

+0

これはシステムの既存のアーキテクチャです。私はシステムをやり直すつもりはないが、維持するためにはlinq-yの良さを使いたいと思っていた。 – JoelHess

0

あなたは3.5

// Clear old form controls 

oldform.Controls.Clear(); 

// Copy controls from newform to oldform 

foreach (Control ctl in newform.Controls) 
{ 
    oldform.Controls.Add(ctl); 
} 
+0

質問は別のフォームにフォームを追加することです。 –

関連する問題