我在導出TabPage
中有一個封裝控件,我無法將它對接到MainForm
,它包含導出的TabPage
。對接一個封裝的控件
我已經正確添加了TabPage
和控件,並且它們顯示在MainForm
上。但是,該控件未正確對接(樣式:填充)。您可以通過調整窗體大小來驗證這一點。
我在派生的TabPage
的構造函數中設置了屬性_control.Dock = System.Windows.Forms.DockStyle.Fill
和_control.Anchor = Left | Right | Top | Bottom
。
下面是代碼的示例:
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和控件正確地停靠。然後,我爲tabpage創建了一個類(因爲我需要許多不同數量的這些選項卡),並將與tabpage相關的所有內容都複製到CreateTab
函數中。我將與tabpage屬性相關的任何內容移至其構造函數中。我將控件封裝在派生的TabPage
中,並將所有與控件相關的所有內容都移至派生的tabpage中。
那麼,我錯過了什麼?是否可以停靠封裝的控件而不實現事件處理函數?