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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|