When developing a form that requires a large number of components, there are various methods that you can use to get the desired result as you learn. Considering some possibilities ...
Method 1. Create separate forms for each configuration
This is a good idea, because after the user makes a choice, you can create a new instance of the desired form, but setting up all the individual forms will take some time, but it is not difficult.
Method 2. Create multiple panels for each configuration
This works similarly to the one method, except that you first hide all the panels, and then display the panel that the user selects. You can pre-create panels and just hide or show, or you can do this programmatically at runtime. (It is wrong to have multiple panels with components hiding, in my opinion, if you do the panels non-programmatically)
Method 3; Programmatically creating the necessary components
You can simply write code to create the desired components based on user choices.
Example:
if(comboBox1.SelectedIndex == 0) { ComboBox selection1 = new ComoboBox(); selection1.Location = new Point(XXX,YYY);
Of these, I think Method 1 would be the easiest because it just placed the components on the form, however it would take a lot of time. In my opinion, programming will be, in my opinion, the most elegant if you keep the code well organized for various possibilities and you do not have numerous forms or panels. You will only mess with the components. However, creating components that programmatically assign properties can also take a long time.
I am not 100% sure what the most formal approach is for this, but these are just some ideas.
Hope this helps.