Meilleur auteur de réponses
remplir une imageList

Question
-
Bonjour,
J'ai ce code :
imageList1.Images.Clear();
imageList1.ImageSize = new Size(128, 128);
Assembly assembly = Assembly.GetEntryAssembly();
string dirPath = String.Format("{0}\\", Path.GetDirectoryName(assembly.Location));
DirectoryInfo myDir = new DirectoryInfo (@"C:\Images\Grands\");
FileInfo[] Files = myDir.GetFiles("*.JPG");
int FileMax = Files.Length ;
for (int i = 0; i < FileMax; i++){
imageList1.Images.Add(Files[i]);
}Je n'arrive pas a le mettre au point !!!
J'ai une erreur a la ligne imageList1.Images.Add(Files[i]);
A l'aide SVP.
Mon but est de remplir une imageList pas des images qui sont sur le disque dur.
Cordialement
Salva
Réponses
-
Bonjour,
Je pense que le problème est que l'on ajoute un objet FileInfo alors que la collection est une collection d'objet Image ce qui devrait être ce qu'indique le message que vous avez (et merci de TOUJOURS indiquer le message d'erreur exact).
Voir http://msdn.microsoft.com/fr-fr/library/system.windows.forms.imagelist.images.aspx (le code utilise Image.FromFile avec le nom complet du fichier pour créer une image).
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse Ould MouradEditor lundi 9 juillet 2012 13:13
- Marqué comme réponse Gilles TOURREAUModerator mardi 17 juillet 2012 08:03
-
En complémente de Patrice, utilisez le constructeur de BitmapImage qui attend le nom du fichier image.
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone- Marqué comme réponse Gilles TOURREAUModerator mardi 17 juillet 2012 08:03
-
Bonjour,
Les reponses m'ont bien aider, mais voila comment j'ai resolu mon probleme.
void Afficher_Image ()
{
Double Large;
Double Haut;
Double Prc_Large;
Double Prc_Haut;
int Lg;int Fin = Debut + 50;
if (Fin > FileMax)
{
Fin = FileMax;
}Dgv_timbres.Rows.Clear();
for (int i = Debut; i <= Fin; i++)
{
try
{
string Fic = Dir[i].ToUpper();
if (Fic.IndexOf (".JPG") >= 0 )
{
Dgv_timbres.Rows.Add("");
Lg = Dgv_timbres.Rows.Count - 1;Large = System.Drawing.Image.FromFile(Dir[i]).Width;
Haut = System.Drawing.Image.FromFile(Dir[i]).Height;
Prc_Large = (160 / Large);
Prc_Haut = (160 / Haut);
Pic_Temp.Size = new System.Drawing.Size(Convert.ToInt16(160 * Prc_Haut), Convert.ToInt16(160 * Prc_Large));
Pic_Temp.Image = System.Drawing.Image.FromFile(Dir[i]);Dgv_timbres.Rows[Lg].Cells[1].Value = Pic_Temp.Image;
int x = Dir[i].IndexOf (@"\",15);
Dgv_timbres.Rows[Lg].Cells[0].Value = Dir[i].Substring(x + 1);
Large = 0;
Haut = 0;
Prc_Large = 0;
Prc_Haut = 0;
Pic_Temp.Dispose();
}
}
catch (Exception)
{ }
}Fin = 0;
Lg = 0;
Large = 0;
Haut = 0;
Prc_Large = 0;
Prc_Haut = 0;
Pic_Temp.Dispose();
}Cordialment
Salva
- Marqué comme réponse sa56 mardi 17 juillet 2012 07:10
Toutes les réponses
-
Bonjour,
Je pense que le problème est que l'on ajoute un objet FileInfo alors que la collection est une collection d'objet Image ce qui devrait être ce qu'indique le message que vous avez (et merci de TOUJOURS indiquer le message d'erreur exact).
Voir http://msdn.microsoft.com/fr-fr/library/system.windows.forms.imagelist.images.aspx (le code utilise Image.FromFile avec le nom complet du fichier pour créer une image).
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse Ould MouradEditor lundi 9 juillet 2012 13:13
- Marqué comme réponse Gilles TOURREAUModerator mardi 17 juillet 2012 08:03
-
En complémente de Patrice, utilisez le constructeur de BitmapImage qui attend le nom du fichier image.
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone- Marqué comme réponse Gilles TOURREAUModerator mardi 17 juillet 2012 08:03
-
Bonjour,
sa56 pouvez-vous nous dire si les réponses de Patrice et Richard vous ont aidé. Merci de tenir informé la communauté.
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0- Marqué comme réponse sa56 mardi 17 juillet 2012 07:08
- Non marqué comme réponse Gilles TOURREAUModerator mardi 17 juillet 2012 08:03
-
Bonjour,
Les reponses m'ont bien aider, mais voila comment j'ai resolu mon probleme.
void Afficher_Image ()
{
Double Large;
Double Haut;
Double Prc_Large;
Double Prc_Haut;
int Lg;int Fin = Debut + 50;
if (Fin > FileMax)
{
Fin = FileMax;
}Dgv_timbres.Rows.Clear();
for (int i = Debut; i <= Fin; i++)
{
try
{
string Fic = Dir[i].ToUpper();
if (Fic.IndexOf (".JPG") >= 0 )
{
Dgv_timbres.Rows.Add("");
Lg = Dgv_timbres.Rows.Count - 1;Large = System.Drawing.Image.FromFile(Dir[i]).Width;
Haut = System.Drawing.Image.FromFile(Dir[i]).Height;
Prc_Large = (160 / Large);
Prc_Haut = (160 / Haut);
Pic_Temp.Size = new System.Drawing.Size(Convert.ToInt16(160 * Prc_Haut), Convert.ToInt16(160 * Prc_Large));
Pic_Temp.Image = System.Drawing.Image.FromFile(Dir[i]);Dgv_timbres.Rows[Lg].Cells[1].Value = Pic_Temp.Image;
int x = Dir[i].IndexOf (@"\",15);
Dgv_timbres.Rows[Lg].Cells[0].Value = Dir[i].Substring(x + 1);
Large = 0;
Haut = 0;
Prc_Large = 0;
Prc_Haut = 0;
Pic_Temp.Dispose();
}
}
catch (Exception)
{ }
}Fin = 0;
Lg = 0;
Large = 0;
Haut = 0;
Prc_Large = 0;
Prc_Haut = 0;
Pic_Temp.Dispose();
}Cordialment
Salva
- Marqué comme réponse sa56 mardi 17 juillet 2012 07:10