如何防止 TabControl 在初始化 VS 2017 时创建标签页
How to prevent the TabControl from creating tab pages upon initializing VS 2017
我正在创建一个继承自 TabControl 的工具。这意味着功能类似于 TabControl,但具有一些附加功能。但是,每次我将 TabControl 或我的工具拖到窗体上时,都会立即创建 2 个 TabPage。我不想在设计器中创建这两个标签页,如何防止创建这两个标签页?
这是个好问题;不幸的是,似乎没有好的答案。
默认情况下为任何 TabControl
创建这两个页面,而不仅仅是您的子class。
它不在您的代码中,也不在 MSDN sources 中。
根据 Hans 的评论,我假设表单(或顶级控件 class,例如 UserControl
)使用 'designer template' 添加额外的初始化代码表单的 InitializeComponent
代码。我们不应该弄乱这段代码!
在这里,在 Form1.Designer.cs
代码中创建了带有愚蠢名称的标签页,作为 class 范围的控件并添加到标签页中。
最简单的解决方案是手动删除设计器中的页面。
我能想到的唯一其他解决方法是清除页面,例如在表单的构造函数中:
public Form1()
{
InitializeComponent();
customTab1.TabPages.Clear();
}
注意:默认TabPages
是不添加创建和添加TabControl
在代码中.
我正在创建一个继承自 TabControl 的工具。这意味着功能类似于 TabControl,但具有一些附加功能。但是,每次我将 TabControl 或我的工具拖到窗体上时,都会立即创建 2 个 TabPage。我不想在设计器中创建这两个标签页,如何防止创建这两个标签页?
这是个好问题;不幸的是,似乎没有好的答案。
默认情况下为任何 TabControl
创建这两个页面,而不仅仅是您的子class。
它不在您的代码中,也不在 MSDN sources 中。
根据 Hans 的评论,我假设表单(或顶级控件 class,例如 UserControl
)使用 'designer template' 添加额外的初始化代码表单的 InitializeComponent
代码。我们不应该弄乱这段代码!
在这里,在 Form1.Designer.cs
代码中创建了带有愚蠢名称的标签页,作为 class 范围的控件并添加到标签页中。
最简单的解决方案是手动删除设计器中的页面。
我能想到的唯一其他解决方法是清除页面,例如在表单的构造函数中:
public Form1()
{
InitializeComponent();
customTab1.TabPages.Clear();
}
注意:默认TabPages
是不添加创建和添加TabControl
在代码中.