首页 > 解决方案 > 如何防止 TabControl 在初始化 VS 2017 时创建标签页

问题描述

我正在创建一个从 TabControl 继承的工具。它的功能类似于 TabControl,但增加了一些功能。但是,每次我将 TabControl 或我的工具拖到表单上时,都会立即创建 2 个 TabPage。我不想在设计器中创建这两个标签页,如何防止创建这两个标签页?

标签: c#tabcontroltabpage

解决方案


这是一个很好的问题; 不幸的是,似乎没有好的答案。

默认情况下,这两个页面是为 any 创建的TabControl,而不仅仅是您的子类。

它不在您的代码中,也不在MSDN 源代码中。

根据 Hans 的评论,我假设表单(或顶级控件类,例如 a UserControl)使用“设计器模板”在表单代码中添加额外的初始化InitializeComponent代码。我们不应该弄乱这段代码!

在这里,在Form1.Designer.cs代码中创建了标签页,使用它们愚蠢的名称,作为类范围的控件并添加到标签中。

简单的解决方案是手动删除设计器中的页面。

我能想到的唯一其他解决方法是清除页面,例如在表单的构造函数中:

public Form1()
{
    InitializeComponent();
    customTab1.TabPages.Clear();
}

注意:在创建和添加in 代码时默认TabPages添加TabControl


推荐阅读