我在派生中有一个封装的控件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
,并在派生标签页中移动与控件相关的所有内容。
那么,我错过了什么?是否可以在不实现事件处理函数的情况下对接封装的控件?