C# Multiple Screen View Single Form

c#, show-hide, user-interface, winforms

Solution

You might want to consider a 'Tabless' tab control, I tend to use them for a lot of my work these days as it's easy and quick to build an interface using the win-forms designer with them.

    class TablessTabControl : TabControl
    {
        protected override void WndProc(ref Message m)
        {
            // Hide tabs by trapping the TCM_ADJUSTRECT message
            if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
            else base.WndProc(ref m);
        }
    }

This will extend the tab control and hide the tabs along the top, you can then change tab programmatically by using code similar to the following:

    tablessTabControl.SelectTab("tabName");

This isn't my original work, I found it floating around the web a while back and can't remember where I saw it. Anyway I hope this helps!

Problem

I created a GUI in C# which should look like this: On Main Screen there are two Buttons, When `Button1` is clicked I don't want to open a new form using `form2.show();` but while staying in the same form I want to change display. I did this using hiding GUI elements and showing the other elements as required. It works fine as I wanted but in the designer View of `Form1` I had to create messy GUI. My question is that is it good programming practice or not? If not then what is the best or recommended way to achieve this. thanks

Original source