Как запретить TabControl создавать вкладки при инициализации VS 2017 - PullRequest
0 голосов
/ 05 мая 2018

Я создаю инструмент, который наследуется от TabControl. Он предназначен для работы подобно TabControl, но с несколькими дополнительными функциями. Но каждый раз, когда я перетаскиваю TabControl или мой инструмент на форму, сразу создаются 2 TabPages. Я не хочу, чтобы эти две вкладки были созданы в конструкторе, как я могу предотвратить создание этих двух вкладок?

1 Ответ

0 голосов
/ 05 мая 2018

Это хороший вопрос; к сожалению, похоже, нет хорошего ответа.

Две страницы создаются по умолчанию для любого TabControl, а не только для вашего подкласса.

Его нет ни в вашем коде, ни в источниках MSDN .

Из комментария Ганса я предполагаю, что существует «шаблон конструктора», который форма (или класс управления верхнего уровня, например, UserControl) использует для добавления дополнительного кода инициализации в код InitializeComponent формы. Мы не должны связываться с этим кодом!

Здесь, в коде Form1.Designer.cs, создаются вкладки с их глупыми именами в качестве общеклассных элементов управления и добавляются на вкладку.

Самое простое решение - удалить страницы в конструкторе вручную .

Единственный другой обходной путь, о котором я могу подумать, - это очистить страницы, например. в конструкторе формы:

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

Примечание : по умолчанию TabPages не добавляются при создании и добавлении TabControl в коде .

...