Qual è il modo corretto di creare app Winform con più "schermi"


11

Qual è il modo corretto di creare un'app Winform con più "schermi"? Ad esempio, sto cercando di scrivere un piccolo programma di backup (principalmente per le risatine) e ho scaricato controlli e container nel modulo.

Sto usando i pannelli e le caselle di gruppo per separare le diverse schermate (ad esempio: sto usando un pannello per contenere tutti i controlli per la finestra "Impostazioni" e un altro pannello per mostrare tutti i backup correnti che sono stati impostati ). Bene, il mio file form.cs si è trasformato in una grande quantità di codice e mi sento come se stessi facendo qualcosa di sbagliato. Non riesco quasi a trovare nulla nel file e sono pronto per ricominciare. Questo progetto è stato solo per me espandere la mia conoscenza di C # e .NET, quindi iniziare un nuovo progetto non è un grosso problema.

Risposte:


10

Esistono diversi modi per controllare la complessità dell'interfaccia utente.

  • Se si dispone di molte forme, è possibile scegliere un modello di progettazione che gestisca le transizioni: Controller applicazione, ad esempio, o più vicino al metallo: Stato .
  • È possibile comporre gruppi di controlli in singoli controlli. Nei winform, si utilizzano i controlli utente .
  • Se la complessità deriva dalla quantità di codice nel modulo, al contrario della quantità di controlli nel modulo, è possibile semplicemente incapsulare meglio il codice in oggetti utilizzando tecniche di programmazione orientate agli oggetti standard. Comprendere i principi SOLID è un buon punto di partenza.
  • Altrimenti, ci sono schemi per lavorare con le interfacce utente. Tra le altre cose (essendo evidente la separazione delle preoccupazioni), facilitano l'organizzazione del codice. Alcuni comuni sono MVC , MVP , MVVM

Dalla tua descrizione, utilizzerei i controlli utente personalizzati per sostituire quello che stai usando i pannelli per ora. Quindi posiziona i controlli utente sui moduli in cui si trovavano i pannelli.


4

In Winforms ogni modulo dovrebbe gestire il proprio lavoro. Dovresti avere un modulo per le impostazioni, un altro per mostrare i backup correnti, ecc.

Se si desidera attenersi ai gruppi multipli a modulo singolo, è possibile creare controlli utente , come ha detto SnOrfus , per separare il codice. Se si finisce ancora con una tonnellata di codice su alcune classi, è possibile avere classi parziali per separare codice diverso in file diversi.

Le lezioni parziali possono sembrare una buona alternativa, ma te lo consiglio solo perché stai costruendo un progetto di hobby. Per un progetto più grande o più complesso dovresti usare i pattern per delegare il lavoro giusto agli oggetti giusti, puoi anche passare a una nuova tecnologia come WPF dove è più facile usare i pattern come MVVM .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.