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 :

Ouvrir une form dans un espace limité d'une autre form (mode plein ecran)


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 82
    Points : 56
    Points
    56
    Par défaut Ouvrir une form dans un espace limité d'une autre form (mode plein ecran)
    Bonjour,

    je développe une application Windows, j'ai une mdiparent au lancement, j'ai ajouté un treeview à gauche du MDIparent, en cliquant sur les noeuds du treeview, je veux afficher les fenêtres uniquement dans l'espace restant de la mdiParent, et cela même en ouvrant une sous forme en mode plein écran.

    En gros je cherche afficher le treeview comme la barre de menu (toujours visible)
    Avez vous une idée?
    Si je ne suis pas assez clair, je suis dispo pour plus d'explication,
    merci par avance

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour aiglelibre
    Je n'ai peut etre pas bien compris ta problematique mais il me semble que:
    1/un control Panel droppe sur le form MDI & docke à gauche
    2/ton treeview dans ce Panel
    3/un splitter vertical
    L'espace à droite du splitter sera reserve automatiquement aux winforms childs.......
    bon code....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    Merci Mabrouki,

    J'ai déjà testé plusieurs possibilités, y compris la tienne, mais sans succès, je développe :
    j'ai créé mon mdiform
    puis j'ai personnalisé ma barre d'outils (ToolTrip) horizontal
    j'ai splité l'espace avec un splitContainer
    A gauche j'ai mis en Dock =fill mon treeview, à droite j'ai mis une pictureBox en Dock = fill (pour arrière plan)
    dans le click de mon treeview ci-dessous le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
           Select Case TreeView1.SelectedNode.Name
                Case "Node1"
                    Dim FormFille = New Form1
                    FormFille.MdiParent = Me
                    FormFille.Show()
            End Select
    la rien ne s'affiche, sachant qu’après le clique je passe bien par ce code ??
    As tu une explication STP
    si je supprime
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormFille.MdiParent = Me
    la fenêtre s'affiche bien, mais en mode plein cerna, elle occupe l'espace de l’écran.

    Merci par avance

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    rebonjour aiglelibre
    Comme le MDI reserve l'espace inoccupe apres le splitter aux forms childs et que tu as occupe cette espace entierement par ton picturebox avec son dock.fill,eh bien les childs sont crees mais ne seront visibles faute d'espace disponible....
    Ce que je suggere c'est mettre l'image dans le BackGroundImage du Form MDI poir liberer l'espace...
    Comme dans ce code:

    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
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    Public Class frmMDITreeView
        Dim NewMDIChild1 As New Form2()
        Dim NewMDIChild2 As New Form2()
        Dim NewMDIChild3 As New Form2()
     
        Dim Panel1 As New Panel
        Dim WithEvents TreeView1 As New TreeView
        Dim Splitter1 = New Splitter
     
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            Dim treeNode1 As New TreeNode("Noeud1")
            Dim treeNode2 As New TreeNode("Noeud2")
            Dim treeNode3 As New TreeNode("Noeud3")
            'Panel1
            '
            Me.Panel1.Controls.Add(Me.TreeView1)
            Me.Panel1.Dock = DockStyle.Left
            Me.Panel1.Location = New Point(0, 0)
            Me.Panel1.Name = "Panel1"
     
     
            'TreeView1
            '
            Me.TreeView1.Dock = DockStyle.Fill
            Me.TreeView1.Location = New Point(0, 0)
            Me.TreeView1.Name = "TreeView1"
            treeNode1.Name = "Noeud1"
            treeNode1.Text = "Noeud1"
     
            treeNode2.Name = "Noeud2"
            treeNode2.Text = "Noeud2"
     
            treeNode3.Name = "Noeud3"
            treeNode3.Text = "Noeud3"
            Me.TreeView1.Nodes.AddRange(New TreeNode() {treeNode1, treeNode2, treeNode3})
     
            'Splitter1
            '
            Me.Splitter1.Location = New System.Drawing.Point(0, 0)
            Me.Splitter1.Name = "Splitter1"
     
            '
            'frmMDITreeView
            '
            Me.Controls.Add(Me.Panel1)
            Me.Controls.Add(Me.Splitter1)
            Me.IsMdiContainer = True
            Me.Name = "frmMDITreeView"
            Me.Text = "MDITreeView"
            'un image en background serait peut etre plus approprie
            Me.BackgroundImage = My.Resources.zebra
            Me.BackgroundImageLayout = ImageLayout.Stretch
            '
            '-----------------les childs forms------------
     
            'Set the Parent Form of the Child window.
            NewMDIChild1.MdiParent = Me
            NewMDIChild1.Text = "child1 form2"
     
            'Set the Parent Form of the Child window.
            NewMDIChild2.MdiParent = Me
            NewMDIChild2.Text = "child2 form2"
     
            'Set the Parent Form of the Child window.
            NewMDIChild3.MdiParent = Me
            NewMDIChild3.Text = "child3 form2"
     
     
     
     
     
        End Sub
     
     
     
        Private Sub TreeView2_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
            Select Case TreeView1.SelectedNode.Name
                Case "Noeud1"
                    'Hide the active form.
                    If Me.ActiveMdiChild IsNot Nothing Then
                        Me.ActiveMdiChild.Dock = DockStyle.Fill
                        Me.ActiveMdiChild.Hide()
                    End If
     
     
                    'Display the new form.
                    NewMDIChild1.Dock = DockStyle.Fill
     
                    NewMDIChild1.Show()
                    NewMDIChild1.WindowState = FormWindowState.Maximized
     
                Case "Noeud2"
                    'Hide the active form.
                    If Me.ActiveMdiChild IsNot Nothing Then
                        Me.ActiveMdiChild.Dock = DockStyle.Fill
                        Me.ActiveMdiChild.Hide()
                    End If
                    'Display the new form.
                    NewMDIChild2.Dock = DockStyle.None
                    NewMDIChild2.Show()
     
                Case "Noeud3"
                    'Hide the active form.
                    If Me.ActiveMdiChild IsNot Nothing Then
                        Me.ActiveMdiChild.Dock = DockStyle.Fill
                        Me.ActiveMdiChild.Hide()
                    End If
     
                    'Display the new form.
                    NewMDIChild3.Dock = DockStyle.None
                    NewMDIChild3.Show()
            End Select
        End Sub
     
     
    End Class
    bon code........

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    Merci MABROUKI
    Je vais tester ça

    Aigle

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    Merci encore Mabrouki

    J'ai testé le code et c'est exactement ce que je voulais avoir,
    PAR CONTRE, quand je fais la même chose en utilisant les composants de la barre d'outil, j'ai toujours la form qui s'ouvre mais elle n'est pas visible !!
    il y que la barre en haut qui porte le titre de la form ainsi que les boutons pour réduire, fermer la form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewMDIChild1.WindowState = FormWindowState.Maximized
    mais si je mets en commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewMDIChild1.MdiParent = Me
    la fenêtre s'ouvre et se met en arrière plan par rapport à la fenêtre parent.

    As-tu une explication STP ?

    Merci par avance

  7. #7
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    Salut aiglelibre.

    Franchement,je n'arrive pas à voir ou se situes ton bogue ,car j'ai refait tout à partir du Designer (la boite à outils) et ca fonctionne comme avec l'exemple code que j'ai deja transmis.....
    De toute maniere on ne peut mettre en comment cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NewMDIChild1.MdiParent = Me
    car sans elle tes forms deviendront de simples forms independants du form MDI.......
    Il faut voir peut etre si tu n'as pas fait un double emploi du Designer et du code que j'ai transmis......

    Si tu utilises la boite à outils tu ne conserves que ces lignes de code:


    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
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    Public Class frmMDITreeView
        Dim NewMDIChild1 As New Form2()
        Dim NewMDIChild2 As New Form2()
        Dim NewMDIChild3 As New Form2()
     
            Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
     
     
             'un image en background serait peut etre plus approprie
            Me.BackgroundImage = My.Resources.zebra
            Me.BackgroundImageLayout = ImageLayout.Stretch
            '
            '-----------------les childs forms------------
     
            'Set the Parent Form of the Child window.
            NewMDIChild1.MdiParent = Me
            NewMDIChild1.Text = "child1 form2"
     
            'Set the Parent Form of the Child window.
            NewMDIChild2.MdiParent = Me
            NewMDIChild2.Text = "child2 form2"
     
            'Set the Parent Form of the Child window.
            NewMDIChild3.MdiParent = Me
            NewMDIChild3.Text = "child3 form2"
     
     
     
     
     
        End Sub
     
     
     
        Private Sub TreeView2_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
            Select Case TreeView1.SelectedNode.Name
                Case "Noeud1"
                    'Hide the active form.
                    If Me.ActiveMdiChild IsNot Nothing Then
                        Me.ActiveMdiChild.Dock = DockStyle.Fill
                        Me.ActiveMdiChild.Hide()
                    End If
     
     
                    'Display the new form.
                    NewMDIChild1.Dock = DockStyle.Fill
     
                    NewMDIChild1.Show()
                    NewMDIChild1.WindowState = FormWindowState.Maximized
     
                Case "Noeud2"
                    'Hide the active form.
                    If Me.ActiveMdiChild IsNot Nothing Then
                        Me.ActiveMdiChild.Dock = DockStyle.Fill
                        Me.ActiveMdiChild.Hide()
                    End If
                    'Display the new form.
                    NewMDIChild2.Dock = DockStyle.None
                    NewMDIChild2.Show()
     
                Case "Noeud3"
                    'Hide the active form.
                    If Me.ActiveMdiChild IsNot Nothing Then
                        Me.ActiveMdiChild.Dock = DockStyle.Fill
                        Me.ActiveMdiChild.Hide()
                    End If
     
                    'Display the new form.
                    NewMDIChild3.Dock = DockStyle.None
                    NewMDIChild3.Show()
            End Select
        End Sub
     
     
    End Class
    Le code restant est genere par le designer...........................
    bon code......................

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    Merci encore une fois MABROUKI,

    Je n'est pas eu le temps de tester mais je te tiens au courant

    Nagib

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 82
    Points : 56
    Points
    56
    Par défaut
    Avec un peu (beaucoup mdrrr) de retard, Merci Mabrouki

    C'est OK

    Aigle

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

Discussions similaires

  1. Limiter une surface dans l'espace
    Par azertyuio dans le forum Mathématiques
    Réponses: 0
    Dernier message: 01/03/2010, 18h50
  2. Tracer une fonction dans un espace R3
    Par Giansolo dans le forum MATLAB
    Réponses: 2
    Dernier message: 30/10/2008, 10h32
  3. [OpenSceneGraph] Position d'une caméra dans l'espace
    Par Invité(e) dans le forum OpenSceneGraph
    Réponses: 2
    Dernier message: 28/08/2008, 10h58
  4. une croix dans l'espace
    Par skalimer0 dans le forum OpenGL
    Réponses: 13
    Dernier message: 12/10/2007, 11h15
  5. Ouvrir une popup et la fermer en revoyant une donnée dans un champ
    Par alcazar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/07/2007, 16h40

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