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 :

[C#] Form avec panel variable


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Par défaut [C#] Form avec panel variable
    Bonjour !

    J'ai développé une application dont je trouve que l'ergonomie pourrait être améliorée. En effet, je dispose d'une "main form" avec des boutons (le menu). Lors d'un clic sur un bouton, une dialog s'ouvre. J'ai remarqué que les applications typiques windows n'utilisent pas ce principe de pop-up.

    J'aimerais donc faire une fenêtre unique, avec un menu fixe sur le côté, et un panel à contenu variable occuperait le reste de la place. A chaque clic, le contenu du panel changerait selon l'option sélectionnée. Utilisant Visual Studio 2005, quel est le plus simple ? Suis-je obligé de tout coder à la main, pour faire apparaître/disparaître les contrôles ? (Mais alors dans l'assistant visuel, tout sera empilé pêle-mêle sur la form, un travail très impropre en somme...).

    Quelqu'un a-t-il une solution à ce problème ?


    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Il y a une autre solution

    Creer des contrôles dynamiquement dans ta Form.
    Pour cela il faut commencer par ajouter dans tes attributs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Pour des Boutons
    ArrayList m_listBouton;
    Ensuite lorsque tu veux ajouter un Bouton, tu le crées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms.Button bouton = new Forms.Button();
    Une fois que tu as tout rensigné sur le bouton:
    - Texte
    - Evenement associé au bouton

    Tu l'ajoutes a ta liste de bouton
    Et tu associe le bouton ajouté a ta Form.

    Mais le fait de tout créer dès le départ, et d'afficher/cacher a ta guise est de loin la plus facile...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Par défaut
    J'ai vu que lorsqu'on crée une form, on peut mettre BorderStyle à none. En gros, on peut avoir une fenêtre avec juste un panel, sans la barre de titre, etc.

    N'est-il pas possible "d'incruster" ce type de contrôle à l'endroit de mon panel principal ?

    Par exemple, je crée une form BorderStyle none, je mets un panel qui prend tte la fenêtre avec mes contrôles, les evenements etc sont gérés dans cette form même. Et je remplirais mon panel principal avec comme source celui là ?

    ----

    Autre question : quelle est la méthode "standard" pour gérer ce genre de cas ? Parce que définir tous les contrôles dès le départ de manière visuelle (bien plus simple) implique de superposer tout un tas de contrôles sur le même panel, quitte à ne plus s'y retrouver... Ou bien dans ce cas est-on obligé de se passer de l'assistant visuel et de recourir à la méthode manuelle ?

    Merci d'avance

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Par défaut
    Ta solution parait intéressante 0xYg3n3, mais étant donné que j'ai pas mal de lignes de code dans chacun de mes dialogs (beaucoup de traîtement), j'aimerais garder ce découpage en différentes classes (ici en forms), afin de ne pas avoir une unique form énorme et difficile à maintenir.

    Une idée intéressante pourrait peut-être de créer des classes séparées, chacune héritant de Panel. Chaque classe définira ses propres contrôles, positions et évenements au sein de ce panel.

    Et au moment d'un clic sur le menu, la form principale instanciera le panel correspondant ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    J'étais en train de penser a quelque chose
    Et si l'utilisation de Tab pourrait solutionner ton problème.

    Par contre je ne sais pas si on peut cacher certains onglets d'une Tab.
    Ca peux être une excellente solution.

    A tester

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Par défaut
    Oui très bonne idée en ce qui conerne le principe (les différents panels déjà présents).

    Avantage :
    - tous les panels sont gérés, il n'y a plus qu'à les remplir.

    Inconvénients :
    - la form principale sera énorme point de vue code.
    - il faudrait un principe similaire sans aucun bouton de tab. Je vais regarder de suite si c'est possible. Comme ça, un clic dans le menu ferait apparaître le tab correspondant, de manière transparente pour l'utilisateur.

    Une solution à méditer

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/05/2011, 09h14
  2. récupérer document.form. avec variable
    Par ekremyilmaz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/06/2009, 19h31
  3. Envoi d'un mail mis en forme avec données variables
    Par eti_lac dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/11/2007, 15h53
  4. Réponses: 2
    Dernier message: 03/11/2007, 11h24
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

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