Framework 4.0をターゲットとするVS2010では、空の第2行のTableLayoutPanelを含むUserControlがあります。WindowsフォームデザイナーでUserControlサブクラスを編集しますか?
Windowsフォームデザイナを使用してこの2番目の行に項目を追加することは可能ですか、それともすべてコードで行う必要がありますか?
EDIT: Hans Passantのコメントには、リンクされた質問が、別のコントロール内で使用されているUserControlを参照しています。私は継承されたコントロールについて質問しています。
Public Class TestInheritedControl
Inherits TestControl
End Class
が作成されます。新しいファイルに次のクラスを作成する
Imports System.ComponentModel
Imports System.Windows.Forms.Design
<Designer(GetType(testDesigner))>
Public Class TestControl
End Class
Public Class testDesigner
Inherits ControlDesigner
Public Overrides Sub Initialize(component As System.ComponentModel.IComponent)
MyBase.Initialize(component)
Dim X As TestControl = CType(component, TestControl)
EnableDesignMode(X.TableLayoutPanel1, "TableLayoutPanelX")
End Sub
End Class
:
私はTestControlは「TableLayoutPanel1」という名前のTableLayoutPanelを含むユーザーコントロールで、次のテストコードを、作成していますデザイナで表示されたときにデザイナで編集できない「TableLayoutPanel1」という名前のTableLayoutPanelが含まれていました。これは私の元の質問に記載された状況であり、解決されていません。
以前のUserControlsのいずれかを継承せずに新しいUserControlを作成し、その中にTestControlを配置すると、 "TestControl1.TableLayoutPanelX"というデザイナで編集可能なTableLayoutPanelでTestControlのインスタンスが作成されます。
上記のTestInheritedControl
クラスをデザイナで編集できるようにする方法はありますか?
[カスタムのUserControlに配置するときにコントロール機能をバブルする方法](http://stackoverflow.com/questions/2785376/how-to-bubble-a-controls-features-when-place) -in-a-custom-usercontrol) –
同じことです。 [Designer]は、基底クラスではなく、継承されたクラスに適用する必要があります。 –