Insertion des icones dans une liste view

Résolu
cs_baby85
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009
- 11 avril 2009 à 23:03
cs_Robert33
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
- 12 avril 2009 à 20:15
salut,
je veux faire une image dans une listeveiw qui contient plusieurs icones
  ic = new Icon("C:\\icone.ico");
            for (int sa = 0; sa < nap; sa++)
            {

                 g.DrawIcon(i, absapi[sa] - (lon_icon) / 2, ordapi[sa] - (lar_icon) / 2);
}
lorrsque j'ai fais comme ca il affiche une seul icone
Merci d'avance

5 réponses

cs_Robert33
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
32
12 avril 2009 à 20:15
Bonsoir,

Pourtant cela devrait fonctionner, sauf si les tableaux d'absices et d'ordonnées ne sont pas initialisés correctement (par exemple avec des valeurs en dehors de la listView, ou si toutes les valeurs sont identiques)

 J'ai repris to code sur une forme simple, avec un bouton et une listview,
j'initialise les tableaux de coordonés dans la boucle, et cela fonctionne, j'ai bien un succession d'icones.

private
void button1_Click(
object sender, System.EventArgs e)
{

int nap=10; //initialisation pour test

int []absapi =
new
int[10];

int []ordapi =
new
int[10];

   Graphics g = listView1.CreateGraphics();
   Icon[] ic =
new Icon[20];

   int[] lon_icon =
new
int[20];

   int[] lar_icon =
new
int[20];

   for (
int sa = 0; sa < nap; sa++)
   {
      absapi[sa]=10*sa + 10; //initialisation pour test
      ordapi[sa]=10*sa + 10; //initialisation pour test
      g.DrawRectangle(Pens.Blue, 0, 0, 500, 500);
      ic[sa] =
new Icon(@"D:\Visual Studio Projects\Robert33\_test\WindowsApplication18\App.ico");
      lon_icon[sa] = ic[sa].Size.Height;
      lar_icon[sa] = ic[sa].Size.Width;

      //g.DrawEllipse(Pens.Black, absapf[sa] - (rayapf[sa] / 2), ordapf[sa] - (rayapf[sa] / 2), rayapf[sa], rayapf[sa]);
      g.DrawIcon(ic[sa], absapi[sa] - (lon_icon[sa]) / 2, ordapi[sa] - (lar_icon[sa]) / 2);
   }
}

C# is amazing, enjoy it!
3
cs_Robert33
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
32
12 avril 2009 à 08:58
Bonjour,

Désolé, mais je ne comprends pas ce que tu veux faire.
Où place-tu ce code?

Pour mettre des icones dans une listview le plus simple reste l'utilisation des propriétés ImageIndex des ListItem, avec l'utilisation de listes ImageList associées au propriéte SmallImageList, LargeImageList et StateImageList de la ListView
enfin il me semble ...

C# is amazing, enjoy it!
0
cs_baby85
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009

12 avril 2009 à 16:00
bonjour,
j ai un interface qui contien une listevew et un bouton
j ai places ces condes dans la methode de bouton cad quad je veux cliquer sur le bouton il va m'inserer des icones dans les position recpéré dans le tablau
absapi[sa] et ordapi[sa]
donc il faut qu il m'affche tous les icones dans ts les positions (o jusqu nap)
or ds mon code il affiche une seul icone qui correspond à 0
Merci d'avance
0
cs_Robert33
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
32
12 avril 2009 à 18:55
Bonsoir,

Le code que tu donnes étant incomplet, il est difficile de répondre précisément.

Dans la methode DrawIcon, le premier parametre est l'icone à afficher.
Dans ton code on a:
   g.DrawIcon(i, ... 
on peut donc en déduire que 'i' est l'icone, ou est-ce 'ic' déclaré plus haut ?  

Mais dans ta boucle ce 'i' ne varie pas, donc il est normal que ce soit toujours la même icone qui soit affichée.

C# is amazing, enjoy it!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_baby85
Messages postés
79
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
17 juin 2009

12 avril 2009 à 19:44
voila le code complet
            Graphics g = listView1.CreateGraphics();
            Icon[] ic = new Icon[20];
            int[] lon_icon = new int[20];
            int[] lar_icon = new int[20];
            for (int sa = 0; sa < nap; sa++)
            {
                g.DrawRectangle(Pens.Blue, 0, 0, 500, 500);
                ic[sa] = new Icon("C:\\image.ico");
                 lon_icon[sa] = ic[sa].Size.Height;
                 lar_icon[sa] = ic[sa].Size.Width;

                g.DrawEllipse(Pens.Black, absapf[sa] - (rayapf[sa] / 2), ordapf[sa] - (rayapf[sa] / 2), rayapf[sa], rayapf[sa]);
                g.DrawIcon(ic[sa], absapi[sa] - (lon_icon[sa]) / 2, ordapi[sa] - (lar_icon[sa]) / 2);

            }
il m affiche aussi une seul icone
0