IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Bonnes pratiques pour la création d'IHM


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut Bonnes pratiques pour la création d'IHM
    Bonjour à tous,

    Maintenant que je m'en sors un peu mieux avec le C#, j'aimerai pouvoir créer des interfaces graphiques un peu plus complexe sans pour autant passer tout de suite à WPF (Je vais m'y mettre mais je préfère d'abord m'améliorer en C# pur).

    Ce que je souhaite dans l'immédiat, c'est faire une interface ayant ces propriétés :
    • La taille au lancement est de 1024*768 pixels - Pour ça, pas de soucis.
    • La taille de l'interface peut varier si l'utilisateur le souhaite. Pour celà, il a à sa disposition les fonctions classiques d'une fenêtre Windows. - Pour ça, j'ai un soucis : Comment faire pour que mon contenu s'adapte à la nouvelle taille de son conteneur ? TableLayoutPanel ?
    • Le contenu sera beaucoup plus grand que les 768 pixels de base et sûrement plus grand que la taille du formulaire même redimensionné sur les plus grandes résolutions d'écrans. - Utiliser les propriétés d'AutoScroll me paraît être une bonne idée.


    Dans la théorie, je vois plus ou moins comment faire. Mais dans la pratique, je n'arrive pas à m'en sortir et à me démêler de tout ça !
    Existe-t-il un White Book ou quelque chose dans le genre qui référence les bonnes pratiques pour faire une interface sans que ça ne devienne un vrai bordel ?

    Ma question peut paraître idiote mais je préfère partir tout de suite avec de bonnes bases pour avoir de "belles" interfaces plutôt que de perdre du temps et faire des trucs bidons. De plus, s'il vaut mieux que je passe à WPF pour me simplifier les choses, soit, je passerai à WPF. Et dans ce cas, j'espère pouvoir trouver des guides de bonnes pratiques.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 170
    Points : 12 291
    Points
    12 291
    Par défaut
    Pour la gestion du redimensionnement :
    http://msdn.microsoft.com/fr-fr/libr...trol.dock.aspx

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    si au final tu feras du wpf, autant ne pas perdre de temps sur les windows forms
    l'interface ne se fait pas du tout de la meme manière, mais en plus le code a côté est différent

    en windows forms, l'interface est gérée en grande partie par le c#, alors qu'en wpf bien codé, il n'y a que du traitement d'information en c# (ce qui parailleurs simplifie la lecture du code), l'interface et la liaison entre les interface et les données sont codés en xaml

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Regarde les propriétés Anchor de tes control sur ta form !

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    dock et anchor vont t'aider pour certains types d'affichage et de composant. Par contre, tu fais bien de le citer, le TableLayoutPanel, rarement utilisé, devrait être utilisé dans tout formulaire de saisie, SURTOUT si les labels sont localisables parce que selon une langue précise, le texte peut prendre deux lignes et c'est là que le tableLayoutPanel entre en jeu pour décaller automatiquement.

    ensuite, sur la MSDN, il y a des guidelines de design d'application et les helpers de placement des composants depuis Visual 2005 t'aident dejà pas mal.
    Après, il existe des règles comme TOUJOURS mettre le bouton annuler (ou autre) à la droite du bouton OK ou d'action.

    faudrait que je retrouve le tuto, mais c'était sur 2003 et il était assez bien foutu

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    Après, il existe des règles comme TOUJOURS mettre le bouton annuler (ou autre) à la droite du bouton OK ou d'action.
    et pourquoi ?

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    c'est ce qu'on appelle une convention
    tu peux essayer toutes les applis que tu possèdes, tu verras que sur Windows, Linux, Iphone, firefox, IE, etc, vraiment tout ce que tu veux, le bouton d'action est toujours à gauche du bouton d'annulation.

    si tu trouves une appli où ce n'est pas le cas, alors vraisemblablement, il y a d'autres problèmes d'ergonomie sur l'application car c'est une simple question de logique.
    on lit de gauche à droite, et lorsque l'on cherche un bouton, on cherche une action précise: accepter, sauvegarder, etc. on sait ce qu'on doit faire. Il est donc logique que lorsqu'on parcours les boutons, l'on tombe d'abord (sens de lecture) sur le bouton qui fait ce que l'on cherche. tout simplement.
    et si tu as plusieurs actions, la plus importante, est la plus à gauche. exemple, quand tu postes sur le forum, tu as d'abord "poster", en ensuite "visualiser".

  8. #8
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Tout a fait !

    Et j'ai fait passer plusieurs application grand public dans des laboratoire d'analyse d'ergonomie. C'est edifiant de voir combien la taille, la position la couleur des éléments, le choix eventuel du texte peuxent fortement influencer le comportement et la compréhension instinctive de l'utilisateur !

    Edifiant aussi de voir que généralement à la moindre difficulté, le premier reflexe du dévelopeur sera toujours de penser que l'utilisateur est borné et qu'il ne fait pas l'effort nécessaire pour comprendre ce qu'on lui a mis devant les yeux !

    Donc Tutu a bien raison de se préoccuper de son IHM

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    c'est ce qu'on appelle une convention
    tu peux essayer toutes les applis que tu possèdes, tu verras que sur Windows, Linux, Iphone, firefox, IE, etc, vraiment tout ce que tu veux, le bouton d'action est toujours à gauche du bouton d'annulation.

    si tu trouves une appli où ce n'est pas le cas, alors vraisemblablement, il y a d'autres problèmes d'ergonomie sur l'application car c'est une simple question de logique.
    on lit de gauche à droite, et lorsque l'on cherche un bouton, on cherche une action précise: accepter, sauvegarder, etc. on sait ce qu'on doit faire. Il est donc logique que lorsqu'on parcours les boutons, l'on tombe d'abord (sens de lecture) sur le bouton qui fait ce que l'on cherche. tout simplement.
    et si tu as plusieurs actions, la plus importante, est la plus à gauche. exemple, quand tu postes sur le forum, tu as d'abord "poster", en ensuite "visualiser".

    j'aurais une logique pas logique ?
    (oui j'ai des boutons annuler à gauche du bouton valider, m'enfin ils sont gros et valider en vert et annuler en rouge, personne se trompe ...)

  10. #10
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    c'est également mauvais, par rapport au tabindex. quant aux couleurs, rouge et vertes, de mémoire (pas sûr du tout donc), ca disait qu'il fallait les mettre pour afficher une information (genre une icone dans un statut, ou la couleur d'une case de saisie en cas d'erreur) mais pas sur les actions qui doivent être neutres et pas influencer l'utilisateur. Il pourrait cliquer sur le vert, simplement parce que le rouge fait "peur".

    bref, je crois qu'on peut dire que tu fais n'importe quoi pol63

  11. #11
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Bonjour à tous et merci pour vos réponses.

    En effet, l'Anchor m'aident déjà, et j'avais oublié de le préciser. Merci de m'avoir réconforté dans leur utilisation. En revanche, je ne me suis pas servi de Dock, faut que je regarde comment il fonctionne.

    Louis-Guillaume, si tu retrouves ton tuto, je suis preneur.
    Mon plus gros soucis actuellement, c'est que je ne sais pas trop quel composant utiliser pour gérer l'agrandissement de la fenêtre.

    Actuellement, si je pars sur un formulaire de taille fixe et que je clique sur le bouton "Agrandir", tous mes composants restent fixés en haut à gauche. Vous me direz que c'est normal, par défaut le Anchor est sur Top; Left.
    Donc si je veux que tous mes contrôles suivent l'agrandissement de la fenêtre, je dois modifier un à un leur propriété Anchor ou bien il existe un composant magique (comme le TableLayoutPanel) qui peut m'y aider.
    Si j'utilise un simple Panel qui lui va suivre le formulaire, les composants dans ce panel vont-ils suivre l'agrandissement ?

  12. #12
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Oui tu dois definir l'anchor propre a chacun des composant : par forcément un a un, tu peux selectionner plusieurs éléments et définir l'anchanr de maniere groupée

    Personnellement la seule fois ou j'ai utilisé un tablelayoutpannel, c'est pour le retirer d'une form ou il encombrait plutot que d'aider

    Je n'ai donc pas d'avis réel sur l'intéret et la nécessité de son usage dans certains cas

  13. #13
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Oui oui, quand je disais un par un, je ne comptais pas les faire un par un mais bien en les groupant.

    Si c'est une solution, alors je n'ai plus qu'à faire mes tests. Merci.

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    le tablelayoutpanel peut etre utile dans certains cas je pense
    sinon il y a aussi le splitcontainer qui permet de redimensionné plusieurs controles (alors qu'avec anchor, en général on en défini qu'un par ligne/colonne qui s'agrandi)

  15. #15
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    c'était pas celui là car le mien donnait des tailles de pixels et des trucs super précis, mais celui-là contient quelques conseils utiles
    http://msdn.microsoft.com/en-us/library/aa511279.aspx

  16. #16
    Membre régulier Avatar de Tuttu
    Homme Profil pro
    Inactif
    Inscrit en
    Février 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Inactif

    Informations forums :
    Inscription : Février 2007
    Messages : 135
    Points : 123
    Points
    123
    Par défaut
    Merci beaucoup à tous. Merci pour le lien Louis-Guillaume.

    Je passe en résolu et j'ouvrirai à nouveau le sujet si le besoin s'en fait sentir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bonnes pratiques pour les IHM
    Par Nebulix dans le forum Débats sur le développement - Le Best Of
    Réponses: 15
    Dernier message: 27/01/2011, 07h01
  2. Bonnes pratiques pour développer une IHM en JAVA
    Par jeromeSERRE dans le forum Interfaces Graphiques en Java
    Réponses: 13
    Dernier message: 20/11/2010, 19h17
  3. Réponses: 5
    Dernier message: 12/09/2006, 18h06
  4. Tutoriel SEO : Introduction et bonnes pratiques pour l'optimisation de pages Web
    Par Community Management dans le forum Référencement
    Réponses: 0
    Dernier message: 06/07/2006, 00h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo