Utilisation des Panels
-
mercredi 15 février 2012 20:22
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 :
J'obtiens dans tous les cas "True" pour le Panel1 et "False" pour le Panel2 sauf quand je cache les deux Panels.Debug.Print("ListViewCatiaEnv : " & Me.Panel1.Contains(Me.ListView))
et
Debug.Print("ListViewCatiaEnv : " & Me.Panel2.Contains(Me.ListView))
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:34Modé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:17Le Listview, est-il docked? Quels sont ces coordinats (location et size properties)?
Regards, Nico
-
vendredi 17 février 2012 18:00
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 SubCordialement, Regards, H.sabatou
-
vendredi 17 février 2012 18:10Si 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
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
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

