Вот решение, использующее стандартный WinForms TabControl, в котором вкладки скрыты во время выполнения, но, конечно, они доступны во время разработки.
Допущения:
Вы не хотите заниматься созданием вкладок OwnerDrawn, что возможно.
Стандартный WinForms TabControl удовлетворит все ваши потребности во время разработки.
Код:
В событии Form Load формы, в которой размещается ваш TabControl, используйте код, подобный следующему:
tabControl1.Region = new Region(tabControl1.DisplayRectangle);
Чтобы скрыть вкладки.
Затем «свяжите» ваши кнопки, чтобы справиться с выбором различных TabPages в TabControl. Очевидно, вы могли бы сделать это более элегантно, чем это:
private void button1_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabControl1.TabPages[0];
}
private void button2_Click(object sender, EventArgs e)
{
tabControl1.SelectedTab = tabControl1.TabPages[1];
}
Примечание: если вы хотите вставить вторичные Forms или UserControls в TabPages TabControl: это не проблема: конечно, проще использовать UserControls. Вставьте их в коллекцию Controls каждой вкладки и установите для их свойства Dock значение DockStyle.Fill.
Примечание: есть более изящные способы скрытия вкладок, например использование производного TabControl, как показано здесь в CodeProject: TabControl в WinForm без отображения заголовка Tab? Существуют и другие решения, которые используют модифицированный WndProc. Их не сложно найти.