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

VB.NET Discussion :

Reunir mes forms et y acceder par onglets


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut Reunir mes forms et y acceder par onglets
    Bonjour,
    J'ai une appli contenant 5 forms numérotés de 1 a 5

    Je me demandais si il était possible et comment faire pour les réunir en une seule interface avec une sorte de barre de menus en haut avec 5 onglets (1 pour chaque form) au lieu d'avoir 5 forms ouverts dans ma barre des tâches

    Je pensais a l'objet toolstrip mais je veux juste 1 onglet pour chaque form et pas de sous menu

    merci de l'aide

  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
    Il y a une solution toute simple :



    En conception
    • Créér une forme principale avec juste unTabControl à 5 onglets
    • Dans chaque forme secondaire, créer un Panel "général" (Dock=Fill, Modifier=internal) qui recevra tous les controls de la form secondaire.
    A l'exécution, dans l'init de la form principale (par exemple, au premier event Activated)
    • Créer chacune des formes secondaires
    • Modifier la propriété Parent de chaque panel "général" ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyForm1.MyGeneralPanel1.Parent = MyTabControl.TabPages[i]

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    génial,simple et rapide
    je teste ça rapidement
    merci bien

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    euh finalement je butte sur quelques truc

    - en fait le form1 devrait etre mon form principal. Devrais je mettre mon tabcontrol + un panel general dans ce form
    - je ne trouve pas internal pour propriete "modifier', j'ai "friends" sous VS2010
    - j'ai un souci pour trouver la propriete "parent" de chaque panel general
    - Je ne vois pas trop ce que tu veux dire par "creer la form secondaire"
    - comment ecrire que le panel general d'un form contiend tous les controles du form lis a part couper coller le code entier dans le panel ?

    Parce que la si je comprends bien, il s'agit de deplacer les controls d'un form vers le form general , est ce bien cela ?

    A part cela tout va bien

  5. #5
    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 trouve pas internal pour propriete "modifier', j'ai "friends" sous VS2010
    Oui, "friends" est l'équivalent en VB de "Internal" en C#.
    en fait le form1 devrait etre mon form principal. Devrais je mettre mon tabcontrol + un panel general dans ce form
    La solution que je proposais était de crééer un Form0 avec juste le TabControl, puis de créér Form1 à Form5 et de transférer leur panel général dans les tabPages de form0.
    Mais, on peut aussi créér un tabcontrol dans Form1, mettre les controls de Form1 dans le premier TabPage, puis créér form2 à form5 et les transférer dans les tabpages 2 à 5 Form1.
    j'ai un souci pour trouver la propriete "parent" de chaque panel general
    C'est "Parent" et utilisable dans le code (pas en conception de form).
    comment ecrire que le panel general d'un form contiend tous les controles du form lis a part couper coller le code entier dans le panel ?
    Tu créées un panel sur la form, tu le mets en Dock=Fill, avec le click droit sur le panneau, tu fais un SendToBack, puis tu selectionnes tous les autres controles de la forme et il suffit de les déplacer pour qu'il deviennent des enfants du panel.
    Parce que la si je comprends bien, il s'agit de deplacer les controls d'un form vers le form general , est ce bien cela ?
    C'est bien l'idée : l'utilisation de Panel "général" permet de déplacer tous les controles en une seule instruction simple.

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonsoir à vous deux,

    La solution de Graffito fonctionne bien mais juste une bête question, pourquoi ne pas mettre directement les Controls dans les TabPages en mode graphique? c'est plus simple non?

  7. #7
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    merci a tous les deux, je teste demain au taf ......

  8. #8
    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
    juste une bête question, pourquoi ne pas mettre directement les Controls dans les TabPages en mode graphique? c'est plus simple non?
    Par principe de modularité.

    En prenant comme exemple une appli de gestion d'entreprise, on évitera de mélanger dans une même forme : la facturation, la paie et le trombinoscope.

  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 Sankasssss Voir le message
    Bonsoir à vous deux,

    La solution de Graffito fonctionne bien mais juste une bête question, pourquoi ne pas mettre directement les Controls dans les TabPages en mode graphique? c'est plus simple non?

    si les tabpages n'ont rien à voir, ca mélange des codes différents ; coder les forms comme des usercontrols permet de séparer ce code
    et en utilisant des forms plutot que des usercontrol ca permet en plus de l'affichage dans un tabpage d'être réutilisé ailleurs (affiché en form indépendante ou en tant que usercontrol autre part)

  10. #10
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    bon c'est encore un peu le flou artistique dans ma tete Graffito
    Voici ce que j'ai fait.

    Pour le moment je teste avec seulement deux forms

    Dans mon form 1 qui est aussi le form principal et celui qui se lance au demarrage de l'apli, j'ai crée un tabcontrol avec mes 2 onglets

    Dans les forms 1 et 2 , j'ai crée un panel (panel1, Dock=Fill, Modifier=internal et panel2, Dock=Fill, Modifier=internal). Le fait que je passe le Dock sur fill fait que mon panel occupe toute la place dans mon form dailleurs est ce normal ?)

    Dans les forms1 et 2 , j'ai fait un sendToBack sur le panel, j'ai vu apparaitre au premier plan les controls


    Mais maintenant, je fais glisser quoi vers ou exactement ????? Les controls du Form1 doivent se deplacer vers ou ? et ceux du form2 ???

    De plus, le fait de faire un sendtoback me fait apparaitre les controls oui, mais par contre je ne vois pas les différents shape presents sur les forms. Normal ou non ??

    Merci bien

  11. #11
    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
    un form ne peut pas être posé en design (enfin pas que je sache) mais ca peut se faire par code

    sinon via un tabcontrol, il y a des tabpages donc pas besoin de panel

    tabcontrol avec 2 tabpages

    code behind :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private _frm2 as form2
    private _frm3 as form3
     
    sub new
       initializecomponent
      _frm2 = new form2
      _frm2.toplevel = false
      _frm2.dock = fill
      tabcontrol1.tabpage(0).controls.Add(_frm2)
      ' pareil pour _frm3 mais dans le 2ème tabpage
    end sub
    en partant du principe que form1 est ton form d'ouverture avec le tabcontrol
    form2 et form3 sont 2 forms designés que tu veux inclure dans le tabcontrol de form1

  12. #12
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    Bonjour Pol63

    Merci pour l'aide
    tabcontrol1.tabpage(0).controls.Add(_frm2) me donne une erreur de type
    tabpage n'est pas un membre de system.windows.forms.tabcontrols
    j'ai modifié ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     Sub New()
            InitializeComponent()
            _frm1 = New Visiondeloin
            _frm1.TopLevel = False
            _frm1.Dock = fill
            TabControl1.TabPages.Add(TabPage1)
     
            _frm2 = New visiondepres
            _frm2.TopLevel = False
            _frm2.Dock = fill
            TabControl1.TabPages.Add(TabPage2)
     
            _frm3 = New Printfrm
            _frm3.TopLevel = False
            _frm3.Dock = fill
            TabControl1.TabPages.Add(TabPage3)
        End Sub
    je n'ai plus d'erreur mais rien ne fonctionne et en prime, j'ai une belle exception "out of memory"

  13. #13
    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
    oui j'ai écrit ca pour le principe, à toi de trouver comment accéder à un tabpage et y ajouter des controles ...

  14. #14
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    ah daccord je comprends mieux maintenant

  15. #15
    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
    Juste une petite remarque à ce sujet :
    j'ai fait un sendToBack sur le panel, j'ai vu apparaitre au premier plan les controls
    Ca ne suffit pas : il faut déplacer (légérement) les controls pour que, de fréres du panel, ils deviennent enfants du panel.

  16. #16
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    c'est ce que j'ai cru comprendre apres quelques lectures
    Mais j'ai quand même du mal a comprendre.

    J'avais compris jusqu'au moment ou je glisse les controles des forms1 et 2 et je cherche toujours a trouver comment je vois qu'effectivement ils sont enfant du panel

  17. #17
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    bon ben rien ne fonctionne, je laisse reposer et je reessaye demain.

    Au final je dois bien avoir :
    Dans mon form1 : 1 tabcontrol et 1 panel
    Dans mon form2 : 1 panel

    dans mes panels, je dois bien respectivement mettre les controles correspondant du form en enfants du panel (controles du form1 enfants du panel du form1 etc ...)

    a priori ca c'est bon mais maintenant je suis perdu ici

    A l'exécution, dans l'init de la form principale (par exemple, au premier event Activated)
    Créer chacune des formes secondaires
    Modifier la propriété Parent de chaque panel "général" ainsi
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyForm1.MyGeneralPanel1.Parent = MyTabControl.TabPages[i]
    je ne vois pas du tout quoi faire

  18. #18
    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 géres l'event Load de form1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PrivateSub Form1_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMyBase.Load
      Dim form2 As New Form2
      form2.myGeneralPanel2.Parent = myTabControl.TabPages[1] 
    EndSub

Discussions similaires

  1. [1.x] affichage par onglet d'un Form
    Par erictomcat dans le forum Débuter
    Réponses: 2
    Dernier message: 08/07/2011, 08h45
  2. comment modifier la couleur de toutes mes forms
    Par korntex5 dans le forum Delphi
    Réponses: 3
    Dernier message: 08/08/2006, 15h29
  3. [C#] Modifier mes Forms a partir de Class
    Par folk dans le forum Windows Forms
    Réponses: 12
    Dernier message: 01/08/2006, 17h54
  4. Acceder par code a Ajout/Suppression de programme
    Par Ben_Le_Cool dans le forum Delphi
    Réponses: 1
    Dernier message: 13/07/2006, 08h49
  5. [8i][forms 6i] résultat arrondi par EXEC_SQL ?
    Par Magnus dans le forum Oracle
    Réponses: 3
    Dernier message: 13/01/2006, 09h07

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