This scenario lends itself well to tab pages, as you'd find on a TabControl
.
However, since you already have a mechanism for switching between the content, you might prefer to create a series of Panel
s whose Dock
property is set to DockStyle.Fill
. When the user clicks the appropriate heading, you simply need to show the appropriate panel and call BringToFront()
on it. This is essentially what the tab control does internally, anyway.
Don't forget to use SuspendLayout()
and ResumeLayout()
appropriately to reduce flicker, which can be a huge problem in WinForms applications, especially when there are lots of controls.