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 :

Image change tout le temps, comment comparer.


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut Image change tout le temps, comment comparer.
    Bonjour à Tous.

    Ce matin je rencontre le probleme suivant : Impossible d'attacher un Tag à une Image d'un ImageList, ca reste à null :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Image img = //qu'importe
    ImageList maliste = new ImageList();
    img.Tag = "coucou";
    maliste.Add(img);
    On constate que maliste.Images[0].Tag retourne null.

    Maintenant je découvre la chose suivante :
    img ne pointe pas au meme endroit que maliste.Images[0] ce qui explique pourquoi le Tag de maliste.Images[0] est null

    J'ai donc voulu contourner le probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dictionary<Image,object> taglist = new Dictionary<Image,object>();
    Image img = //qu'importe
    ImageList maliste = new ImageList();
    maliste.Add(img);
    Image imgFromList = maliste.Images[maliste.Images.Count-1];
    taglist.Add(imgFromList ,"coucou");
    maliste.Tag = taglist;
    Et là oh surprise :
    taglist[maliste.Images[0]]; me jete l'exception KeyNotFound.

    Et je constate que Img ne pointe pas au meme endroit que ImgFromList, qui lui meme ne pointe pas au meme endroit que maliste.Images[0], bref rien ne concorde !!!

    Comment puis comparer 2 Images par référence?

    J'aimerai éviter de comparer pixel par pixel (question de perf).

    PS: j'ai besoin d'utiliser un ImageList car beaucoup de Control s'en servent. Et j'ai besoin de rattacher à chaque Image un Tag pour y associer une valeur.

    Merci.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    ImageList concatène les images qu'on lui donne en une seule, ce n'est pas une collection d'objet du style List<T>.

    Plutôt qu'associer un tag à une image, je stockerais quelque part un dico associant à un tag l'ImageIndex associé. Parce que là, pourquoi voulais-tu avoir un tag sur les images ? A partir d'où tu pensais récupérer une Image, pour en extraire le tag ?
    ಠ_ಠ

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    En effet vu comme ca

    En fait depuis peu, j'utilise les Tag sur les controles, pour stocker la reference vers l'objet "donnée" associé.

    C'est tres pratique dans une callback pour retourner au presenteur quel objet que lui connait (ex : IMonClient), a été cliqué dans le GUI.

    Mais dans le cas actuel, il s'agit en fait d'associer une valeur Enum a chaque image. l'idée etait de selectionner dans le ImageList, l'image par l'enum. Faire un Dico exterieur ne change pas grand chose sauf que je vais devoir stocker les index des images, j'aime pas trop travailler avec les index ca offre souvant tot ou tard de mauvaises surprises, meme avec des tests.

    Merci pour la réponse

Discussions similaires

  1. [WS 2008 R2] l'horloge de mes clients change tout le temps
    Par solaar dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 14/01/2014, 14h46
  2. Réponses: 16
    Dernier message: 19/02/2008, 14h10
  3. images défilantes : pourquoi ça ne marche pas tout le temps ?!
    Par Istrella dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/10/2007, 17h56
  4. Comment faire une image occuper tout l'espace d'une cellule d'un tableau
    Par jeanphi31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/05/2007, 14h35
  5. [Debutant] image,texte qui reste tout le temps a l'ecran
    Par mariogarcia dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/03/2006, 13h12

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