派生したにカプセル化されたコントロールがあり、派生したを含むTabPage
フォームにドッキングするのに問題があります。MainForm
TabPage
TabPage
とコントロールを正しく追加しましたが、に表示されていMainForm
ます。ただし、コントロールは正しくドッキングされていません(スタイル:塗りつぶし)。フォームのサイズを変更することで、これを確認できます。
プロパティ_control.Dock = System.Windows.Forms.DockStyle.Fill
と_control.Anchor = Left | Right | Top | Bottom
派生TabPage
のコンストラクターを設定しました。
以下はコードのサンプルです。
public class DerivedTab : TabPage {
public DerivedTab(){
...
_control= new BrightIdeasSoftware.TreeListView();
this.Controls.Add(this._control);
_control.Anchor = System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right | System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom;
_control.Dock = System.Windows.Forms.DockStyle.Fill;
...
}
}
でMainForm
、これは実行時に派生タブを作成する関数です。
private DerivedTab CreateTab(string name)
{
DerivedTab tab = new DerivedTab(this, name);
tab.SuspendLayout();
MainTab.Controls.Add(tab);
return tab;
}
とにかく、私はVisual Studio Designerを使用してこのコードを生成し、コントロールは正しくドッキングします。次に、タブページのクラスを作成し(これらのタブの数はさまざまであるため)、タブページに関連するすべてのものをCreateTab
関数にコピーしました。タブページのプロパティに関連するものはすべてコンストラクターに移動しました。コントロールを派生にカプセル化し、コントロールにTabPage
関連するすべてを派生タブページに移動しました。
だから、私は何が欠けていますか?イベントハンドラー関数を実装せずに、カプセル化されたコントロールをドッキングすることは可能ですか?