ImageList à remplir par code [Résolu]

Messages postés
38
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
2 septembre 2017
- - Dernière réponse : mecyber25
Messages postés
38
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
2 septembre 2017
- 15 mai 2012 à 17:30
Bonjour,
pourquoi Visual Studio 2010 m'affiche un message d'erreur ("Exception non gérée...") quand je veux remplir ainsi l'imagelist ?
Tandis que si je la remplis par la fenêtre propriétés, Image, collection, tout fonctionne bien.

DirectoryInfo dir = new DirectoryInfo(@"C:\Users\etc...");
            FileInfo[] imageFiles = dir.GetFiles("*.jpg");
            ImageList imageList1 = new ImageList();
            foreach (FileInfo f in imageFiles)
            {
                imageList1.Images.Add(Image.FromFile(f.Name));
            }
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
22
3
Merci
Salut

Remplace
imageList1.Images.Add(Image.FromFile(f.Name));

par
imageList1.Images.Add(Image.FromFile(f.FullName));


Name correspond au nom de l'image ("toto.jpg") alors que FullName correspond au path ("C:\Users\Toto\Pictures\toto.jpg")


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 155 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
10
0
Merci
Salut,

il nous faut l'exception si tu veux qu'on t'aide.
Commenter la réponse de cs_jopop
Messages postés
14511
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 mai 2019
88
0
Merci
Hello,
Peut-être n'as-tu pas renseigner le champ Size, comme l'illustre l'exemple en milieu de cette page


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Commenter la réponse de BunoCS
Messages postés
38
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
2 septembre 2017
1
0
Merci
J'ai bien rensigné le champ size
Voici le message d'erreur

Consultez la fin de ce message pour plus de détails sur l'appel du débogage
juste-à-temps (JIT) à la place de cette boîte de dialogue.

************** Texte de l'exception **************
System.IO.FileNotFoundException: Paris_10 octobre 2010 (1).jpg
à System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
à WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) dans C:\Users\Homajour\Documents\Visual Studio 2010\Projects\fractale\arbre images\arbre images\Form1.cs:ligne 27
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Assemblys chargés **************
mscorlib
Version de l'assembly : 4.0.0.0
Version Win32 : 4.0.30319.269 (RTMGDR.030319-2600)
CodeBase : file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
arbre images
Version de l'assembly : 1.0.0.0
Version Win32 : 1.0.0.0
CodeBase : file:///C:/Users/Homajour/Documents/Visual%20Studio%202010/Projects/fractale/arbre%20images/arbre%20images/bin/Release/arbre%20images.exe
----------------------------------------
System.Windows.Forms
Version de l'assembly : 4.0.0.0
Version Win32 : 4.0.30319.269 built by: RTMGDR
CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Version de l'assembly : 4.0.0.0
Version Win32 : 4.0.30319.276 built by: RTMGDR
CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Version de l'assembly : 4.0.0.0
Version Win32 : 4.0.30319.269 built by: RTMGDR
CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms.resources
Version de l'assembly : 4.0.0.0
Version Win32 : 4.0.30319.1 built by: RTMRel
CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
Version de l'assembly : 4.0.0.0
Version Win32 : 4.0.30319.235 (RTMGDR.030319-2300)
CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Débogage JIT **************
Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
application ou cet ordinateur (machine.config) doit avoir la valeur
jitDebugging définie dans la section system.windows.forms.
L'application doit également être compilée avec le débogage
activé.

Par exemple :

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
seront envoyées au débogueur JIT inscrit sur l'ordinateur
plutôt que d'être gérées par cette boîte de dialogue.
Commenter la réponse de mecyber25
Messages postés
38
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
2 septembre 2017
1
0
Merci
Et voici le code

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\Moi\Pictures\Pictures\1");
            FileInfo[] imageFiles = dir.GetFiles("*.jpg");
 
            foreach (FileInfo f in imageFiles)
            {
                imageList1.Images.Add(Image.FromFile(f.Name));
            }
            int i = 0;
            foreach (FileInfo f in imageFiles)
            {
                TreeNode n = new TreeNode(f.Name, i, i);
                treeView1.Nodes.Add(n);
                i++;

            }

        }
    }
}
Commenter la réponse de mecyber25
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
10
0
Merci
FileNotFoundException : les noms de fichiers que tu passes à la fonction Image.FromFile() sont incorrects. Passe en mode debug pour voir la tronche de la valeur de cette variable, elle doit être en relatif et donc inutilisable pour cette méthode.
Commenter la réponse de cs_jopop
Messages postés
38
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
2 septembre 2017
1
0
Merci
Merci
Commenter la réponse de mecyber25