2010-11-21 22 views
13

WinFormsでは、フォームを作成するときに、コンテナコントロール(パネル、グループボックスなど)と同じ方法で、ツールボックスから他のコントロールをドラッグして追加することができるUserControlを作成するにはどうすればよいですか?私はコントロールをコントロールに追加するようにしましたが、コントロールを移動すると追加したコントロールはそのまま残りますが、コントロールの代わりにPanel(他のコントロールはパネルと一緒に動く)。他のコントロールをドロップできるUserControlを作成するにはどうすればいいですか?

+0

WinFormsまたはWPF? –

+0

WinForms ........ – Juan

答えて

20

たとえば、Panelコントロールとは異なり、UserControlは、別のフォームに配置されるとコンテナコントロールとして機能しません。 UserControl自体を設計している間は完全な設計時サポートがありますが、デフォルトの動作では、別のフォームに配置された後は構成的なコントロールとして機能しません。このため、ツールボックスからドラッグして他のコントロールを追加することはできません。

UserControlに行動のこのタイプを追加するには、カスタムUserControlクラスの定義にDesignerAttributeを追加する必要があります。たとえば、次のように

using System.ComponentModel; 
using System.ComponentModel.Design; 

[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] 
public class MyUserControl : System.Windows.Forms.UserControl 
{ 
    //...your code here 
} 

(。さらなる読書のための関連MSDNの記事を参照してください)


あなたUserControl内部入れ子にコントロールの完全なデザイナーのサポートを実装する場合、これは少し難しいです。より包括的な議論については、CodeProjectのthis articleを参照してください。

関連する問題