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 :

[VB.NET]Menu et navigation


Sujet :

Windows Forms

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut [VB.NET]Menu et navigation
    Salut
    j'aimerai bien faire une appli winform avec des menus. Par exemple prenons une appli de compta. Dans mon menu je crée une entrée "Créer ma société" , là j'affiche dans ma winform j'ai un panel qui contient les infos à saisir. Dans mon menu j'ai une 2ème entrée "Créer mes salariés". et la je bloque. Je crée un panel contenant les infos à saisir et donc avec mon outil de dev j'ai 2 panels que je cache suivant que si je demande la creation de salariés ou de ma société ou bien il y a une autre technique?

    Merci. je ne sais pas si j'ai été très clair. En gros une winform pour la navigation ca marche comme une appli web ou bien tout est dans la form et on fait apparaitre tel ou tel panel suivant ce que l'on veut faire?

  2. #2
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    Bé je suis un peu dans le meme cas que toi. Etant entrain de créer une meme application, j'utilise 2 techniques 'si je peux m'exprimer ainsi'. C'est a dire, que j'insere des panels dans ma form principale, et par l'intermédiaire de la propriété visible, je les active ou pas.

    Sinon, j'utilise des MDI (multi document interface) créant des fenetres filles qui s'integre dans la fenetre principale, mais d'autres problemes interviennent, cf sujet en dessous.

    bon courage, et je suis a l'écoute de vos propositions

  3. #3
    Membre éclairé Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Par défaut
    Salut,

    J'ai peut être pas bien compris le problème...
    Pourquoi tu n'ajoutes pas une form à ton projet ? Et sur l'événement (click, etc) de ton point de menu tu ouvres cette form...

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    mais ca veut dire que tu fermes et tu ouvres une autre form c'est ça? mais je voudrais que ce soit transparent. Pour le moment je fais comme miya je rends visible ou invisible les panels dont je ne me sers pas.

  5. #5
    Membre éclairé Avatar de diaboloche
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    592
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 592
    Par défaut
    Essaye un peu ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          WinForm2 myForm = new WinForm2();
          myForm.Show();

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    ca, ca t'ouvre une 2ème fenetre non?

  7. #7
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Tu créés un form principal vide

    Pour chaque écrans tu créés un form avec un panel docké (pour une récupération plus simple des composants) sur la form sur lequel tu places tes composants

    Code vb.net : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Private m_arrEcrans As New ArrayList
    Private frmEcranEnCours As Windows.Forms.Form = Nothing
     
    Private Sub FormPrincipal_Load( _
                            ByVal sender As Object, _
                            ByVal e As System.EventArgs _
                            ) Handles MyBase.Load
     
        m_arrEcrans.Add(New SocieteEcran)
        m_arrEcrans.Add(New SalarieEcran)
        m_arrEcrans.Add(New xxxxxEcran)
        '...
     
        AfficheEcran(0)
    End Sub
     
    Private Sub AfficheEcran(ByVal Int_Index As Integer)
        Dim ObjControl As Control
     
        ' Vérifie la présence d'ecrans
        If IsNothing(m_ArrEcrans) Then Exit Sub
        If m_arrEcrans.Count = 0 Then Exit Sub
     
        ' Vérifie l'index
        If Int_Index < 0 Or Int_Index > m_arrEcrans.Count - 1 Then Exit Sub
     
        If Not IsNothing(frmEcranEnCours) Then
            ' Récupération du panel
            ObjControl = Me.Controls(0)
            frmEcranEnCours.Controls.Add(ObjControl)        
        End if
     
        ' Récupère l'ecran 
        m_frmEcranEncours = m_arrEcrans(Int_Index)
     
        ' Ajout du panel
        ObjControl = frmEcranEnCours.Controls(0)
        Me.Controls.Add(ObjControl )
        ObjControl .Dock = Windows.Forms.DockStyle.Fill
     
     
    End Sub

    Bon, c'est juste une base d'idée, mais ce système te permet d'alléger tes fenetres et la maintenance.

  8. #8
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    J'oubliais, penses à utiliser les SuspendLayout et ResumeLayout si ça flash...

  9. #9
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    En gros ta solution signifie que c'est généralement comme ca que l'on fait ou bien c'est ta petite technique pour palier ce problème.?
    Mais ca me semble pas mal ton truc. du moins plus logique que de mettre tous les panels dans une form et des les rendre visible ou invisible suivant ce que l'on veut faire.

  10. #10
    Membre émérite
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Par défaut
    Je ne sais pas si c'est cela qui est fait généralement dans ce genre de cas.
    C'est en effet, ma petit technique pour pallier au problème.

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Tout depends de l'érgonomie que tu souhaite avoir dans ton application pour le coté technique oui on affiche toujours en avant la fenêtre qui va bien, mais pour des raisons de lisibilité souvent les actions de menu n'ouvrent que des fenêtres filles de paramètrage, ou qui modifie le contenu de l'affichage de ta fenêtre principale, à l'image du navigateur que tu utilise.

    En générale il est preferable d'avoir un form principale stable, on peut toujours ajouter des onglets si on a besoin de compartimenter les informations.

    Mais si tu tiens absoluement à changer la fenêtre principale à chacune de tes actions, alors je te conseil d'etablir une certaines hierarchie afin d'ajouter des boutons retour ou d'accès aux autres fenêtres pour que l'utilisateur ne soit pas perdu dans ton application et de rester coherent afin de ne pas empiler betement les forms sans aucune logique.

  12. #12
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    Utilise le systeme des MDIs

  13. #13
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    Soit mais les MDI c'est bien quand tu veux avoir plusieurs fenetres d'une meême appli ouverte dans une form un peu comme word, ca n'est pas trop ce que je veux. En fait j'ai découvert qu'on pouvait utiliser des usercontrol en fait comme en ASP.Net et c'est plus ca que je vais utiliser je pense. en fait c'est la solution proposée par Kelpan. Je vais voir et au pire je reveindrais si je dois utiliser des MDI comme c'est suggéré.

Discussions similaires

  1. [VB.NET] Menu contextuel sur une extension
    Par ricil78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/08/2007, 17h11
  2. [.NET 3 / WPF] Navigation et Wpf
    Par despeludo dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 29/11/2006, 19h55
  3. [VB.Net] Menu commun à plusieurs Forms
    Par l1on3l dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/10/2006, 08h27
  4. [VB.NET] Menu Contextuel
    Par nero dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/02/2005, 13h00

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