I’m currently developing an application in C# that will have two layouts: simple and advanced.
The simple layout would have 4 objects (2 buttons and 2 text controls) and the advanced layout would have 8 objects.
What would be the best way to do this? Having two forms? Or set the button.visible to true/false (and for each object?).
If you follow a UI pattern that allows for separation of model, view and controller (e.g. MVVM or MVC), you will find it is very straightforward to have two separate forms that can be evolved over time as needed, with only minimal changes to the rest of your code.
Trying to make a single form work for two different presentations tends to get complex over time (compared to the alternative of just making two forms that share the same model and controller) as user requirements evolve.
UPDATE
Based on your comment… you can also do MVC with WinForms
http://www.codeproject.com/Articles/383153/The-Model-View-Controller-MVC-Pattern-with-Csharp