Question

Je conçois un CRUD WinForms "like". application permettant à un groupe important d’infirmières et de travailleurs sociaux d’interagir avec les informations des clients.

Il existe de nombreuses formes différentes (environ 30 ish) dont ils ont besoin pour "éventuellement". interagissez avec pour un client donné et ils "peuvent être" obligé de sauter de l'un à l'autre pour une personne spécifique.

Je me bats avec la conception de l'interface utilisateur. Je n’ai conçu que des CRUD linéaires très simples dans lesquels vous faites ce que vous voulez sur une page et cliquez sur Suivant.

Qu'est-ce qui fait sens pour une application WINForm CRUD non linéaire?

J'avais commencé par les onglets avec des formulaires incorporés dans ces onglets mais, probablement en raison de mon manque de capacité, le programme semble très volumineux. Je ne suis pas sûr que le MDI soit simple, car j’ai des utilisateurs très simples qui risquent d’être confus si les fenêtres sont "masquées".

J'apprécierais VRAIMENT tous les conseils, idées et exemples que quiconque pourrait avoir. Surtout si quelqu'un a eu à créer lui-même une application WINForm CRUD.

Quelle disposition de l'interface utilisateur a fonctionné (ou n'a pas) pour vous?

Voici un exemple de ma mine actuelle: >

DevFiles
Était-ce utile?

La solution

Il existe quelques modèles acceptés ici, et vous pouvez parfois les combiner de manière productive:

  1. TabPages
  2. TreeView (dossiers de Windows Explorer, Outils | Options de Visual Studio)
  3. Réduire les panneaux (Outlook Mail / Calendrier / Contacts)

Les panneaux réductibles ne sont pas un contrôle standard, mais plusieurs implémentations sont disponibles ( just un )

Et vous n'êtes pas les seuls, inspirez-vous de cette SO réponse .

Autres conseils

L'une des choses les plus importantes que j'ai apprises grâce aux applications de type CRUD est de s'assurer qu'il existe des touches de raccourci pour presque tous les boutons et que l'ordre de tabulation est correctement configuré.

La plupart du temps, lorsque vous effectuez la saisie / modification de données, vous ne souhaitez pas laisser vos mains du clavier pour déplacer la souris sur le bouton Soumettre / Mettre à jour, en particulier avec des volumes de données importants. . La mise en ordre de ces deux éléments améliorera considérablement la productivité de l'application.

Avertissement: je fais des CRUD depuis un certain temps, mais je commence tout juste à commencer avec ma première application winforms.

Donc, quelques idées mitigées:

Dans notre système actuel (écrit avec Centura / Gupta), nous utilisons une approche semblable à celle du MDI. Je pense qu'il est important de permettre à l'utilisateur de commencer à travailler sur un nouvel enregistrement sans le forcer à fermer son travail actuel. Une liste des fenêtres ouvertes est donc toujours affichée pour permettre le basculement rapide entre les différents formulaires. Exemple:

alt text
(source: pingmbh.de )
Liste des fenêtres ouvertes en bas à gauche. Ce système permet également d'ouvrir un enregistrement de l'intérieur d'un autre, par exemple. ouvrez un client, affichez les commandes de ce client, double-cliquez sur l'une de ses commandes pour l'ouvrir, etc.>

Maintenant, à propos des winforms: Après avoir fait quelques recherches, je me suis opposé au MDI et ai plutôt utilisé un formulaire contenant des SplitContainers. L'un de ces panneaux contient une liste de fenêtres ouvertes, un autre affiche le formulaire actuel. Comme je n'ai pas trouvé le moyen d'afficher un formulaire dans un panneau, les formulaires sont réalisés sous forme de contrôles utilisateur. Le formulaire principal garde une trace des fenêtres ouvertes et les affiche dans la liste des fenêtres. Si l'utilisateur clique sur une fenêtre de la liste ou ouvre le même enregistrement ailleurs dans le programme, le panneau approprié apparaît au premier plan. Image d'un travail en cours: alt text
(source: pingmbh.de )
Envisagez de séparer la sélection des enregistrements existants de l’édition de ces enregistrements, c’est-à-dire d’afficher les enregistrements existants dans une sorte de tableau (comme une grille) avec des fonctions de filtre et de recherche et de laisser l’utilisateur double-cliquer pour les éditer.

J'ai remarqué sur votre capture d'écran que vous avez des boutons pour " Insérer " et "Mise à jour". S'agit-il de créer de nouveaux enregistrements et de sauvegarder des enregistrements existants? Je pense qu'une meilleure approche consiste à donner à l'utilisateur un "Nouveau". bouton, puis ouvrez un formulaire qui a " enregistrer " et " annuler " boutons. L'utilisateur peut ne pas toujours se souvenir s'il a commencé à modifier un nouvel enregistrement ou un enregistrement existant.

L’écran de sélection BTW est un bon endroit pour le "nouvel enregistrement". bouton.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top