Густаво,
Вы стоите у подножия первого предгорья горной цепи проблем, с которыми вы столкнетесь, вынудив разработчиков унаследовать от "базового класса формы". Исходя из моего опыта, фреймворки, построенные таким образом, имеют тенденцию быть очень хрупкими и трудными для разработчиков.
Я мог бы представить, что вы можете преодолеть это конкретное препятствие, сделав TabControl закрытым, а затем реализовав открытое свойство "Tabs" в самой форме, но я также подозреваю, что вы доберетесь до вершины этой горы и поймете, что перед вами много других, даже более высоких гор. Я бы посоветовал вам полностью переосмыслить подход.
// set the Modifiers property on tabControl1 to "Private" then implement this
public TabControl.TabPageCollection TabPages
{
get { return tabControl1.TabPages; }
}
Наследование должно использоваться для обеспечения общей функциональности, а не для обеспечения однородного состава. Вы действительно должны подумать о внедрении «основного экрана» и разработке своей инфраструктуры, чтобы позволить разработчикам «подключить» свои элементы управления к этому экрану.
Блок приложения Composite UI - хорошее место для начала, хотя может быть что-то более недавнее, чего я не знаю.