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 :

[C# 2.0] Images dans un Listview


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club Avatar de OtI$
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 64
    Points : 32
    Points
    32
    Par défaut [C# 2.0] Images dans un Listview
    Salut!

    J'aimerais afficher des images dans mes SubItems d'un listView.
    pour ça, j'ai inséré mes images dans une liste d'images que j'exploite dans l'évènement DrawSubItems().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    private void lvgantt_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
            {
                switch(e.Header.Text.ToUpper())
                {
                    case "NAME":
                        {
                            e.DrawDefault = true; break;
                        }
                    default:
                        {
                            if (e.SubItem.Text.Equals(" "))
                            {
                                e.SubItem.Text = "   ";
                                if (e.Item.Text.StartsWith("  "))
                                {
                                    //e.SubItem.BackColor = Color.NavajoWhite;
                                    e.Graphics.DrawImageUnscaledAndClipped(lvgantt.SmallImageList.Images["activate"], e.Bounds);
                                    //DrawCenterImage(imageListPetiteTaille.Images["session"], e);
                                    //DrawIcon(session, e.SubItem.Bounds);
                                }
                                else
                                {
                                    //e.SubItem.BackColor = Color.Coral;
                                    e.Graphics.DrawImageUnscaledAndClipped(imageListPetiteTaille.Images["activate"], e.Bounds);
                                    //e.Graphics.DrawIcon(phase, e.SubItem.Bounds);
                                }
                            }
                            else if (e.SubItem.Text.Equals("today"))
                            {
                                e.SubItem.Text = "  ";
                                //e.SubItem.BackColor = Color.SaddleBrown;
                                e.Graphics.DrawImageUnscaledAndClipped(imageListPetiteTaille.Images["session-today"], e.Bounds);
                                //DrawCenterImage(imageListPetiteTaille.Images["session-today"], e);
                                //e.Graphics.DrawIcon(session_today, e.SubItem.Bounds);
                            }
                            //else e.DrawDefault = true;
                            break;
                        }
                }
            }
    quand j'éxécute, j'ai l'impression de voir apparaitre vite fait mes images et après elles disparaissent. pas à pas, j'arrive à voir mes images bien mais dans l'éxécution il m'est impossible de savoir pourquoi elle disparaissent.

    Quelqu'un a t il déja fait un listview avec des images dedans si oui comment ?
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    peut-etre est-ce un problème de raffraichissement.

    Perso, si tu veux faire "un listview" avec des images, je t'orienterais plutot
    vers l'utilisation d'un panel, avec les propriétés AutoScroll à true, et je ferais un truc du genre : Panel.Controls.Add(PictureBox1);
    ou picturebox1 correspondrait à ton image, etc... ca pourrait etre plus simple
    ma foi

    The Monz, Toulouse

  3. #3
    Nouveau membre du Club Avatar de OtI$
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 64
    Points : 32
    Points
    32
    Par défaut
    Merci pour ta réponse The Monz.
    Je vais tester ta solution, je suis preneur. Par ailleurs, si j'utilisais un format .jpg le rendu serait peut etre meilleur. Mais je ne sais pas comment m'y prendre pour ajouter une liste d'images jpg.

    tu aurais une idée ?

    Merci
    a+

    Otis

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    beh, imaginons que tu as une liste d'image dont les noms sont dans
    une list<string>

    tu pourrais faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int where = 0;
    foreach(string imageName in myList)
    {
       PictureBox a = new PictureBox();
       a.Image = Image.FromFile(imageName);
       a.Location = new Point(tonX , where);
       a.SizeMode = PictureBoxSizeMode.StretchImage; 
       a.Size = new Size(50,50); // image 50 par 50 par exemple
       panel1.Controls.Add(a);
       where += 55; // on espace de 5 entre chaque image
    }
     
    sans oublie panel1.AutoScroll = true;
    Voila, ca devrait le faire non ?

    The Monz, Toulouse

  5. #5
    Nouveau membre du Club Avatar de OtI$
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 64
    Points : 32
    Points
    32
    Par défaut
    Merci bien ca va m'être utile!!

    Allez j'vais coder.

    Merci The monz
    a++

    Otis

Discussions similaires

  1. afficher une image dans une listview
    Par z-lordofhardstyle dans le forum VB.NET
    Réponses: 0
    Dernier message: 22/05/2009, 20h54
  2. [VB2008] Taille d'image dans un ListView
    Par Tagazog dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/11/2008, 15h54
  3. images dans un listview [VB.net]
    Par oli330cd dans le forum VB.NET
    Réponses: 12
    Dernier message: 20/04/2008, 14h10
  4. image dans une listView
    Par zmatz dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/06/2007, 10h36
  5. Ajouter image dans une ListView
    Par Dimitri_87 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 20/02/2007, 00h50

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