Accueil > Forum > > > > Utilisation de ImageList dans un UserControl
Utilisation de ImageList dans un UserControl
mardi 9 janvier 2007 à 16:05:45 |
Utilisation de ImageList dans un UserControl

Djedj
|
Bonjour!
Je souhaiterais pouvoir utiliser un contrôle ImageList dans mon UserControl, à l'instar de TreeView, TabView, ListView, etc... de la librairie mscomctl : ce ImageList est donc un contrôle placé sur le Form qui contient mon UserControl.
Voici le code et l'explication du problème :
Dim s_imagelist As MSComctlLib.ImageList
Public Property Get ImageList() As Object Set ImageList = s_imagelist End Property
Public Property Set ImageList(ByRef New_ImageList As Object) If TypeOf New_ImageList Is MSComctlLib.ImageList Then Set s_imagelist = New_ImageList End Property
...ainsi que WriteProperties et ReadProperties qui enregistrent ou récupèrent la propriété Name du ImageList associé à mon UserControl
Private Sub UserControl_WriteProperties(PropBag As PropertyBag) If s_imagelist Is Nothing Then Call PropBag.WriteProperty("ImageList", "<Aucun>", "<Aucun>") Else Call PropBag.WriteProperty("ImageList", s_imagelist.Name, "<Aucun>") End If End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Set s_imagelist = GetParentImageList(PropBag.ReadProperty("ImageList", "<Aucun>"))
End Sub
La fonction GetParentImageList (aussi appelée depuis une page de propriété) est la suivante :
Friend Function GetParentImageList(ByVal imlName As String) As Object If imlName = "<Aucun>" Then Set GetParentImageList = Nothing Else Dim imlCtrl As Object For Each imlCtrl In UserControl.ParentControls If
imlCtrl.Name
= imlName Then Set GetParentImageList = imlCtrl Next End If End Function
Cette fonction retourne donc un objet ImageList à partir de son nom... Appelée depuis la procédure ApplyChanges() de ma page de propriétés, aucun problème, la propriété ImageList de mon UserControl correspond bien au contrôle ImageList désigné dans la liste déroulante. Par contre, le problème est que, lorsqu'elle est appelée depuis ReadProperties (après avoir fermé puis rouvert un Form contenant une instance de mon UserControl, le tout en mode Création), cette fonction ne marche pas, car le contrôle ImageList désigné par la propriété de mon UserControl n'est pas encore chargé, et n'appartient donc pas encore à la collection ParentControls ...! Ainsi, GetParentImageList renvoie Nothing, alors que le paramètre imlName est valide...
Comment dois-je procéder? Suis-je obligé d'utiliser un String dans la propriété ImageList du UserControl, et d'appeler ma fonction GetParentImageList uniquement lors de l'utilisation du contrôle ImageList?
Merci à ceux qui auront le courage de se plonger dans le problème (et tant pis pour les autres )
gRömK
|
|
mardi 9 janvier 2007 à 18:21:53 |
Re : Utilisation de ImageList dans un UserControl

jack
|
Salut Sans essayer, je commencerais par changer le nom de la propriété Get ImageList car ce nom, ImageList, est réservé à un objet. Le problème peut venir de là ... D'autre part, si ton objet est une ImageList, dis lui que c'est une ImageList au lieu de Object, plus logique, non ? Public Property Get xImageList() As Object
Essaye Public Property Get xImageList() As MSComctlLib.ImageList
Vala Jack, MVP VB NB : Je ne répondrai pas aux messages privésChampion du monde de boule de cristal - 2005Le savoir est la seule matière qui s'accroit quand on
|
|
mardi 9 janvier 2007 à 20:06:35 |
Re : Utilisation de ImageList dans un UserControl

Djedj
|
Salut!
Non, le nom ImageList fonctionne bien (même si je conçois que ça puisse gêner certains) Non, ImageList à la place de Object de fonctionne pas
Le problème vient vraiment du fait que dans le contexte de ReadProperties, lorsqu'une nouvelle instance du UserControl vient d'être créée, ParentControls ne contient pas encore le contrôle ImageList...
J'ai résolu le problème en procédant comme je l'avais évoqué : la fonction GetParentImageList n'est plus appelée dès la création de l'instance, mais plutôt lorsqu'il y a besoin de dessiner les images... Je ne suis pas complètement satisfait, mais ça marche parfaitement, et le code n'est que légèrement allourdi.
Merci de ton aide
gRömK
|
|
Cette discussion est classée dans : set, contrôle, usercontrol, imagelist, getparentimagelist
Répondre à ce message
Sujets en rapport avec ce message
POUR LES BOSS DU IMAGELIST [ par Nico ]
Comment utiliser le contrôle imagelist associé à un listview? En fait j'ai une erreur: "Le contrôle ImageList doit être initialisé avant d'être utilis
contrôle activeX UserControl.Picture [ par jacques34 ]
Jacques34Votre texte ICI2 questions :1) bien qu'ayant une licence officielle VB6, je ne trouve pas dans les compléments, "Assistant de contrôle active
Ajouter image à imagelist par code impossible [ par JMKPROD ]
Salut à tous de la Guadeloupe J'ai un problème avec un contrôle (imagelist), je n'arrive pas à y ajouter des images. La ligne suivante que j'ai trouvé
Comment enregistrer les modifications apportées au contrôle imagelist [ par JMKPROD ]
Salut à tous,Je reviens à la charge, j'ajoute par code de nouvelles images dans une imagelist. Comment enregistrer ces modifications de façon durable
créer 1 userControl [ par RDX ]
Salut a tous :)J'aimerais savoir comment on fait un contrôle, j'ai cherché un tuto et j'en ai trouvé un sur .net, mais c'est tout.Si quelqu'un sait ou
[VB6] Usercontrol : "supprimer" certaines propriétés [ par PhilocheMan ]
Bonjour,Je cherche un moyen, pour un contrôle utilisateur, à masquer certaines propriétés qui apparaissent systématiquement, comme :- DragIcon, DragMo
[Conseils] Faire fonctionner correctement une ImageList [ par violent_ken ]
Violent Ken Bonjour, j'aimerais avoir des précisions sur le contrôle ImageList. Rassurez vous, j'ai déjà recherché (en vain) des infos sur le
UserControl WPF / XAML qui hérite q'un contrôle existant [ par Afyn ]
BonjourJ'ai essayé de construire un contrôle personnalisé pour WPF qui hérite d'un contrôle ToolBar.Je suis parti de l'ajout dans le Projet d'un UserC
Utiliser le contrôle maskedit avec un textbox dans un usercontrol [ par esoso ]
Salut, Voilà, je suis nouveau ici et j'espère que vous allez pouvoir m'aider. En fait, je développe une application sous VB6 qui utilise un userco
VB.NET usercontrol erreur ! :-( [ par scortex84 ]
Bonjour, Je développe en VB.NET. J'ai fais plusieurs usercontrol dans mon projet, et tout marche nickel chrome. Mais parfois, et c'est le cas, j'essay
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|