A volte torna utile l’utilizzo del controllo Tab senza visualizzare l’header del controllo per fare in modo di visualizzare o nascondere dei controlli.
Come indicato su questo post, è possibile crearsi il proprio controllo ereditando dal TabControl e facendo l’override del WndProc:
public class CustomTabControl : TabControl
{
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x1328 && !DesignMode)
m.Result = (IntPtr)1;
else
base.WndProc(ref m);
}
}