Traitée Utilisation des Panels

  • mercredi 15 février 2012 20:22
     
      A du code

    Bonjour,

    J'ai un soucis d'utilisation de Panels

    J'ai une form avec deux Panels

    Panel1 qui contient une Listview qui va me servir a affchier une liste favoris

    Panel2 qui contient un label, une CheckListBox e  un Boutton.

    Les deux panels sont ancrés (Dock=5)

    Sur ma form au chargement seul le Panel1 est visble par défault (la deja je ne vois pas mon Listview alors que je le souhaiterais.

    Depuis un menu je charge la sélection des favoris : donc je cache mon Panel1 et affichier Mon Panel2 : ca c'est bon.

    Je passe sur le choix des favoris (pas encore codé) Ensuite je valide en cliquant sur le bouton, je cahce Panel2 et affiche le Panel1 et la toujours pas de Listview

    J'ai fai un 2eme bouton dans le menu qui cache les 2 panels, et la je m'apercois que le Listview est derriere !!

    En Mode debug je teste :

    Debug.Print("ListViewCatiaEnv : " & Me.Panel1.Contains(Me.ListView))

    et

    Debug.Print("ListViewCatiaEnv : " & Me.Panel2.Contains(Me.ListView))

    J'obtiens dans tous les cas "True" pour le Panel1 et "False" pour le Panel2 sauf quand je cache les deux Panels.

    Donc 2 questions:

    Pourquoi je ne vois le Listview quand Panel 1 est visible puisque qu'il est contenu dedans

    Pourquoi il n'est "plus liée au Panel 1 quand je le cache.

    Au début je voulais utiliser un TabControl car je trouve plus pratique, mais je n'ai pas trouvé comment cacher les onglets de tabulations.

    Donc si quelqu'un à une idée, merci d'avance

    Cordialement


    Cordialement, Regards, H.sabatou

Toutes les réponses

  • mercredi 15 février 2012 23:34
    Modérateur
     
     

    Bonjour,

    Je n'arrive pas à reproduire votre problème. Est-il possible que vous puissiez nous envoyer un projet qui reproduirait votre problème où alors nous montrer le code source de votre fenêtre ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

  • vendredi 17 février 2012 16:38
     
     

    Bonjour Gilles,

    J'ai préparé une partie de mon projet que j'ai exporté reproduisant le probleme.

    Il s'agit d'un fichier zip d'environ 2Mo.

    Ou puis je vous l'envoyer ?

    Cordialement,


    Cordialement, Regards, H.sabatou

  • vendredi 17 février 2012 16:50
     
     

    Bonjour,

    je vous conceille de regarder sur le Document Outline (menu View, Other Windows, Document Outline; ctrl Alt T),

    ca vous donne un view sur' l'ordre des controls: quel control contient un autre.

    Vous verrez que le listview ne serra pas au endroit juste.


    Regards, Nico

  • vendredi 17 février 2012 17:03
     
     

    Bonjour,

    Merci pour l'astuce je ne connaissais pas cette fenetre. Je ne l'ai pas trouvé par les menu car j'ai l'interface en francais et je ne trouve pas de correspondance . Par contre  Ctrl Alt + T c'est Ok.

    voici un apercu des panels : Le Listview est bien inclus dans mon Panel 1 : Bizarre


    Cordialement, Regards, H.sabatou

  • vendredi 17 février 2012 17:17
     
     
    Le Listview, est-il docked? Quels sont ces coordinats (location et size properties)?

    Regards, Nico

  • vendredi 17 février 2012 18:00
     
      A du code

    Listview.dock = none

    Listview.size = 290; 176

    Listview.location = 75; 58

    Ensuite sur Form.SizeChanged je lance la sub suivante

    Private Sub Position_Panel()
            'Modifie la position des panels et leurs dimensions
            Me.Panel1.Location = New Point(0, 42)
            Me.Panel2.Location = New Point(0, 42)
            'Me.Panel1.Width = Me.Width - 16
            'Me.Panel1.Height = Me.Height - 42
            'Me.Panel2.Width = Me.Width - 16
            'Me.Panel2.Height = Me.Height - 42
            Me.Panel1.Dock = 5
            Me.Panel2.Dock = 5
    
            Me.Button_Valide_Favoris.Location = New Point(Me.Panel2.Width - (130 + 21), Me.Panel2.Height - (32 + 61))
    
            Me.ListViewCatiaEnv.Width = Me.Width - (41)
            Me.ListViewCatiaEnv.Height = Me.Height - 128      'Avec bouton Test présent
            Me.ListViewCatiaEnv.Location = New Point(13, 9)
            '559,272 à 13,9
            Debug.Print("Le Panel 1 contient :")
            Debug.Print("ListViewCatiaEnv : " & Me.Panel1.Contains(Me.ListViewCatiaEnv))
            Debug.Print("Panel 2 : " & Me.Panel1.Contains(Me.Panel2))
            Debug.Print("Label1 : " & Me.Panel1.Contains(Me.Label1))
            Debug.Print("CheckedListBox1 : " & Me.Panel1.Contains(Me.CheckedListBox1))
            Debug.Print("Button_Valide_Favoris : " & Me.Panel1.Contains(Me.Button_Valide_Favoris))
    
            Debug.Print("")
            Debug.Print("Le Panel 2 contient :")
            Debug.Print("ListViewCatiaEnv : " & Me.Panel2.Contains(Me.ListViewCatiaEnv))
            Debug.Print("Panel 1 : " & Me.Panel2.Contains(Me.Panel1))
            Debug.Print("Label1 : " & Me.Panel2.Contains(Me.Label1))
            Debug.Print("CheckedListBox1 : " & Me.Panel2.Contains(Me.CheckedListBox1))
            Debug.Print("Button_Valide_Favoris : " & Me.Panel2.Contains(Me.Button_Valide_Favoris))
    
            If Me.Panel1.Contains(Me.ListViewCatiaEnv) Then
                Me.ListViewCatiaEnv.BringToFront()
                Debug.Print("Position de ListViewCatiaEnv : " & Me.ListViewCatiaEnv.Location.ToString)
                Debug.Print("Dimension de ListViewCatiaEnv : " & Me.ListViewCatiaEnv.Size.ToString)
            End If
    
        End Sub


    Cordialement, Regards, H.sabatou

  • vendredi 17 février 2012 18:10
     
     
    Si vous avez un email  je peux aussi vous envoyer un projet exemple de mon probleme

    Cordialement, Regards, H.sabatou

  • vendredi 17 février 2012 18:17
     
     

    peut-etre dans le fichier VotreForm.Designer.vb, il y a quelque chose d'abnormal avec le listview.

    Quest-ce que ce passe quand vous faites un fill - dock du listview?


    Regards, Nico

  • vendredi 17 février 2012 18:37
     
      A du code

    Lorsque j'ouvre le Form.Designer, il n'y a pas d'erreur apparente

    voici un extrait du Designer.vb

    'Panel1
            '
            Me.Panel1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(128, Byte), Integer), CType(CType(128, Byte), Integer))
            Me.Panel1.Controls.Add(Me.ListViewCatiaEnv)
            resources.ApplyResources(Me.Panel1, "Panel1")
            Me.Panel1.Name = "Panel1"
            '
            'ListViewCatiaEnv
            '
            Me.ListViewCatiaEnv.BackColor = System.Drawing.Color.FromArgb(CType(CType(192, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer))
            Me.ListViewCatiaEnv.BorderStyle = System.Windows.Forms.BorderStyle.None
            resources.ApplyResources(Me.ListViewCatiaEnv, "ListViewCatiaEnv")
            Me.ListViewCatiaEnv.Name = "ListViewCatiaEnv"
            Me.ListViewCatiaEnv.UseCompatibleStateImageBehavior = False
            '
            'Panel2
            '
            Me.Panel2.BackColor = System.Drawing.Color.Lime
            Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
            Me.Panel2.Controls.Add(Me.Button_Valide_Favoris)
            Me.Panel2.Controls.Add(Me.Label1)
            Me.Panel2.Controls.Add(Me.CheckedListBox1)
            resources.ApplyResources(Me.Panel2, "Panel2")
            Me.Panel2.Name = "Panel2"
            '

    Je ne comprends pas

    quand vous faites un fill 

    Vous voulez dire quand j'ajoute des items au Listview.

    J'ai tester Listview.dock = 5 mais le Listview est toujours derriere le Panel1


    Cordialement, Regards, H.sabatou

  • dimanche 19 février 2012 12:09
     
     Traitée A du code

    Bonjour,

    J'ai finalement trouver la ligne de code qui me posait probleme

    J'avais récupérer un exmple de code qui remplit le listview avec des icones.

    Mais ce code le fait de facon dynamique, donc à la fin il y avait

     
    Me.Controls.Add(ListView)

    Alors que ma form avait deja le list view inclus dans le Panel1.

    Finalement tout a une explication logique !! ;)

    Merci quand meme aux personnes qui ont tenté de m'aider.


    Cordialement, Regards, H.sabatou

    • Marqué comme réponse h.sabatou dimanche 19 février 2012 12:09
    •