我在导出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中。
那么,我错过了什么?是否可以停靠封装的控件而不实现事件处理函数?