ImageList à remplir par code

Résolu
mecyber25 Messages postés 38 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 2 septembre 2017 - 14 mai 2012 à 12:42
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));
            }

7 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
15 mai 2012 à 09:58
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é. -
3
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
14 mai 2012 à 12:53
Salut,

il nous faut l'exception si tu veux qu'on t'aide.
0
BunoCS Messages postés 15461 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 février 2024 103
14 mai 2012 à 14:02
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...
0
mecyber25 Messages postés 38 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 2 septembre 2017 1
14 mai 2012 à 19:54
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.
0

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

Posez votre question
mecyber25 Messages postés 38 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 2 septembre 2017 1
14 mai 2012 à 19:56
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++;

            }

        }
    }
}
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
14 mai 2012 à 19:58
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.
0
mecyber25 Messages postés 38 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 2 septembre 2017 1
15 mai 2012 à 17:30
Merci
0
Rejoignez-nous