Domanda

Sto progettando un CRUD WinForms " like " app per un folto gruppo di infermieri e assistenti sociali per interagire con le informazioni del cliente.

Esistono molte forme diverse (circa 30 ish) che devono " possibilmente " interagire con un determinato cliente e questi possono essere " richiesto per saltare da uno all'altro per una persona specifica.

Sto lottando con il design dell'interfaccia utente. Ho progettato CRUD WEBForm lineari molto semplici solo dove fai quello che ti serve su una pagina e fai clic su Avanti.

Cosa ha senso il mont per un'app WINForm CRUD non lineare?

Avevo iniziato il percorso delle schede con moduli incorporati in quelle schede ma, probabilmente a causa della mia mancanza di capacità, il programma sembra molto voluminoso. Non sono sicuro che l'MDI sia la strada da percorrere in quanto ho utenti molto semplici che possono essere facilmente confusi se le finestre sono "nascoste".

Gradirei moltissimo qualsiasi consiglio, intuizione o esempio che qualcuno potrebbe avere. Soprattutto se qualcuno ha dovuto creare da solo un'app CRUD WINForm.

Quale layout dell'interfaccia utente ha funzionato (o no) per te?

Un esempio di come appare il mio è qui - >

http://lh6.ggpht.com/_DqVwi_JXyS0/SF8EIAAAAIIAAAA /MATRIXUIExample.JPG Da DevFiles
È stato utile?

Soluzione

Ci sono alcuni schemi accettati qui, e talvolta puoi combinarli in modo produttivo:

  1. TabPages
  2. TreeView (Win Explorer Folders, Strumenti di Visual Studio | Opzioni)
  3. Compressione dei pannelli (Outlook Posta / Calendario / Contatti)

I pannelli di compressione non sono un controllo standard ma sono disponibili diverse implementazioni (ecco solo uno )

E non sei solo, per un po 'di ispirazione vedi questo SO risposta .

Altri suggerimenti

Una delle cose più importanti che ho imparato attraverso le app di tipo CRUD è assicurarsi che ci siano tasti di scelta rapida per quasi tutti i pulsanti e che l'ordine delle schede sia impostato correttamente.

La maggior parte delle volte, quando si esegue l'immissione / modifica dei dati, non si desidera rilasciare le mani dalla tastiera per spostare il mouse sul pulsante Invia / Aggiorna, in particolare con grandi volumi di dati con cui lavorare . Avere questi due elementi in ordine migliorerà notevolmente la produttività dell'app.

Dichiarazione di non responsabilità: sto facendo CRUD per non so da quanto tempo, ma sto iniziando ora con la mia prima app winforms.

Quindi, alcune idee contrastanti:

Nel nostro sistema attuale (scritto usando Centura / Gupta) utilizziamo un approccio simile a MDI. Penso che sia importante consentire all'utente di iniziare a lavorare su un nuovo record senza costringerlo a chiudere il suo lavoro attuale, quindi viene sempre visualizzato un elenco di finestre aperte per consentire il passaggio rapido tra i diversi moduli. Esempio:

alt text
(fonte: pingmbh.de )
Elenco di finestre aperte in basso a sinistra. Inoltre, questo sistema consente di aprire un record dall'interno di un altro, ad es. aprire un cliente, mostrare gli ordini di questo cliente, fare doppio clic su uno dei suoi ordini per aprirlo e così via.

Ora su winforms: dopo aver fatto qualche ricerca ho ingannato MDI e invece ho usato un modulo contenente alcuni SplitContainer. Uno di questi pannelli contenitore mostra un elenco di finestre aperte, un altro mostra il modulo corrente. Poiché non ho trovato il modo di mostrare un modulo in un pannello, i moduli sono realizzati come controlli utente. Il modulo principale tiene traccia delle finestre aperte e le visualizza nell'elenco delle finestre. Se l'utente fa clic su una finestra dell'elenco o apre lo stesso record da un'altra parte del programma, il pannello appropriato viene portato in primo piano. Immagine di un lavoro in corso: alt text
(fonte: pingmbh.de )
Prendi in considerazione la possibilità di separare la selezione di record esistenti dalla modifica di questi record, ovvero mostra i record esistenti in una sorta di tabella (come una griglia) con funzionalità di filtro e ricerca e lascia che l'utente faccia doppio clic su questi record per modificarli.

Ho notato sul tuo screenshot che hai pulsanti per " Inserisci " e "Aggiorna". È per la creazione di nuovi record e il salvataggio di record esistenti? Penso che un approccio migliore sia quello di dare all'utente un "Nuovo" pulsante, quindi apri un modulo che ha " salva " e "annulla" pulsanti. L'utente potrebbe non ricordare sempre se ha iniziato a modificare un record nuovo o esistente.

La schermata di selezione tra l'altro è un buon posto per il "nuovo record" pulsante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top