如何防止 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在代码中.