¿Cuál es una manera adecuada de crear aplicaciones Winform con múltiples "pantallas"

11

¿Cuál es la forma correcta de crear una aplicación Winform que tenga múltiples 'pantallas'? Por ejemplo, estoy tratando de escribir un pequeño programa de respaldo (principalmente para risitas) y he estado volcando controles y contenedores en el formulario.

Estoy usando paneles y cuadros de grupo para separar las diferentes pantallas (por ejemplo: estoy usando un panel para mantener todos los controles de la ventana "Configuración", y otro panel para mostrar todas las copias de seguridad actuales que se han configurado ) Bueno, mi archivo form.cs se convirtió en una gran cantidad de código, y siento que estoy haciendo algo mal. Casi no puedo encontrar nada en el archivo, y estoy listo para comenzar de nuevo. Este proyecto fue solo para mí para ampliar mi conocimiento de C # y .NET, por lo que comenzar un nuevo proyecto no es un gran problema.

CurtisHx
fuente

Respuestas:

10

Hay varias formas de controlar la complejidad de la interfaz de usuario.

  • Si tiene muchas formas, puede elegir un patrón de diseño que gestione las transiciones: Controlador de aplicación, por ejemplo, o más cerca del metal: Estado .
  • Puede componer grupos de controles en controles individuales. En winforms, usas controles de usuario .
  • Si la complejidad proviene de la cantidad de código en su formulario, a diferencia de la cantidad de controles en el formulario, simplemente podría encapsular mejor el código en objetos utilizando técnicas de programación orientadas a objetos estándar. Comprender los principios SÓLIDOS es un buen lugar para comenzar.
  • De lo contrario, hay patrones para trabajar con interfaces de usuario. Entre otras cosas (la separación de las preocupaciones es prominente), facilitan la organización del código. Algunos comunes son MVC , MVP , MVVM.

Según su descripción, utilizaría controles de usuario personalizados para reemplazar lo que está utilizando paneles por ahora. Luego, simplemente coloque esos controles de usuario en sus formularios donde estaban sus paneles.

Steven Evers
fuente
4

En Winforms, cada formulario debe manejar su propio trabajo. Debe tener un formulario para la configuración, otro para mostrar las copias de seguridad actuales, etc.

Si desea seguir con los grupos múltiples de forma única, puede crear controles de usuario , como dijo SnOrfus , para separar el código. Si aún termina con una tonelada de código en algunas clases, puede tener clases parciales para separar diferentes códigos en diferentes archivos.

Las clases parciales pueden parecer una buena alternativa, pero solo te la recomiendo porque estás creando un proyecto de pasatiempo. Para un proyecto más grande o más complejo, debe usar patrones para delegar el trabajo correcto a los objetos correctos, también puede cambiar a una nueva tecnología como WPF, donde es más fácil usar patrones como MVVM .

Valter Costa
fuente