Я никогда не проектирую пользовательский интерфейс, зависит от такой "магии".
Мой предпочтительный подход:
- Создайте свои страницы как UserControl вместо TabPage и установите UserControl.Dock = System.Windows.Forms.DockStyle.Fill;
- Использовать Panel вместо TabControl.
- Добавьте все элементы UserControl на панель и установите только один из них. Visible = true; за один раз.
Тогда это решение является кроссплатформенным, поскольку вы не вызываете Win32 API.