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 :

Créer un seul form de "navigation"


Sujet :

Windows Forms

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Créer un seul form de "navigation"
    Bonjour,

    Il y a certains programmes d'installation (même la plupart), qui proposent grâce à des boutons Suivant, Précédent de passer d'une page à une autre, sans pour autant, à priori, changer de form.

    J'ai fait un truc du genre: au clique de suivant, Me.Hide et Form2.Show, mais c'est (vraiment)^n pas terrible.

    Quelle est l'astuce?

    Merci

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    On peut utiliser un TabControl avec les volets en bottom, des noms de volets à blanc et une taille minimum. Ca reste visible (hauteur environ 5 pixels), mais c'est pas moche. Toutefois, il faut gérer l'event de clicks sur le volets pour interdire le changement de volets.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    D'accord merci. Je peux aussi "monter" le controle afin de cacher les onglets.

    Y a t-il une autre solution, peut être plus "propre"?

    Merci

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Tu definis 2 zones dans le formulaire :
    • un Panel de command (Dock=Bottom) avec les boutons précédents/suvant/terminer/annuler
    • Un panel principal pour accueillir les panneaux de saisie(Dock=Fill)

    Tu definis en outre :
    • Un TabControl non visible bien pratique en conception et qui servira de container en exécution.
    • Dans chaque TabPage, un panel de saisie (Dock=Fill) qui contient les controles de saisie.

    Chaque fois que tu fais suivant/précédent, tu modifies la propriété Parent des panels de saisie en leur affectant soit le Panel principal, soit la TabPage d'origine.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    C'est parfait, merci !

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Ah en fait c'est presque parfait!

    Quand je dispose mes controle sur le TabPage, et que je rend le TabControl invisible, mes controles se redisposent mais très mal (concernant les marges).
    Faire une mise en page pour palier à ces problèmes de marge est plutot pas pratique, comment faire pour que le TabControl reste "physiquement" là, dans qu'il soit visible? (Hide ne fonctionne pas non plus)

    Merci

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Je ne comprends pas vraiment le problème : si tu modifie la propriété Parent des Panels de saisie (un panel par TabPage avec Dok=Fill), cela ne doit rien changer à leur agencement interne.

    En composition, mets le TabControl dans le Panel "Principal" de destination en Dock Fill.

    En execution, il suffit juste de réduire au départ la hauteur de la forme d'une valeur égale à "MonTabControl.Height-MonPanelDeSaisie1.Height" (pour supprimer la hauteur lié aux onglets).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burundi

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    salut, vous pouvez clarifiez vos reponsez s'il vous plait parceque je m'y vois pas...
    Donc un peu de code si c'est possible??

  9. #9
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 37
    Points : 55
    Points
    55
    Par défaut
    Salut,

    Si tu ne veux pas galérer avec le positionnement des controls dans les onglets.
    Je te conseille de créer un usercontrol pour chacun de tes onglets comprenant tout le code nécessaire et le positionnement des controles.
    Il te suffit ensuite de les positionner dans des tabpages avec les onglets masqués en Dock=Fill et d'utiliser un compteur que tu incrémentes sur le click d'un bouton suivant et décrémentes sur le bouton précédent.

    Avec cette méthode, tu peux même te passer du tabcontrol et ajouter un simple panel dans lequel tu retires le control précédent puis ajoute le suivant

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burundi

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut strikl?? au fait j ai un form mere et j'y plante un usercontrol...donc je veux des k je selectionne un item d'un listbox ki se trouve dans ce form ca m'affiche l'une des pages choisie de mon tabcontrol se trouvant dans mon usercontrol!?aide moi si vous y connaissez klk chose et un code cpomplet si c est possible...

  11. #11
    Membre du Club
    Inscrit en
    Février 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 37
    Points : 55
    Points
    55
    Par défaut
    je ne comprends pas trop ce que tu veux faire.
    de ce que j'en déduis, tu as crée un usercontrol contenant un tabcontrol et tu veux activer une page en sélectionnant celle ci dans une listebox ?!

    si c'est le cas, pourquoi ne pas créer une fonction publique dans ton usercontrol qui prend en paramètre l'index ou le nom de la tabpage à afficher et sur le clique de la listbox tu appelles cette fonction

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burundi

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    skrikl merci bcp j ai un peu utiliser ton conseil...
    A vrai dire j ai un autre pbm pour la navigation des mes formulaires donc parexempl pour retourner en arriere ou avancer une fois qu'on a fait l retour en arriere avec les boutons suivant ou precedent??
    Et est c que je pourrai avoir tn email pour se communiquer rapidement...?

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