ExternalException c#

[Fermé]
Signaler
-
 moi411 -
Bonjour,
J'ai une ExternalException qui est levée sur la ligne "Application.Run(new Form1());" du fichier "Program.cs" lorsque j'affiche une icône (.ico) dans une pictureBox.

Je la gère comme ça:
try { Application.Run(new Form1()); }
catch { }

mais j'aimerai quand même savoir pourquoi elle apparaît, si c'est le meilleurs moyen de faire et biensûr comment afficher mes icônes dans mes pictureBox!!!

Eventuellement, qu'est ce qu'une externalException au juste et y a t-il d'autres type de fichier qui la déclencherai? Dans le cas d'affichage d'image, je veux dire!


Merci d'avance et à bientôt.

moi

5 réponses

Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
417
Pour avoir le message de l'exception fait ceci :
try 
{ 
    Application.Run(new Form1()); 
} 
catch (ExternalException e)
{ 
    MessageBox.Show(e.Message);
} 


Ainsi on en saura un peu plus sur la raison d'être de ton exception.
Re,
Le message est le suivant: A generic error occurred in GDI+.
Voilà rien de plus...

Je ne peut que te dire à la prochaine!!!
Messages postés
1420
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 mai 2013
417
Ferais-tu du traitement d'images dans ton programme?

Si oui peux tu nous donner les lignes où tu utilise un nom de fichier (exemple : "C:\Mes documents\monfichier.jpg")?

Théoriquement il y a principalement deux raisons à une erreur pareille :
1) Tu n 'a pas le droit de modifier/écrire/lire un fichier auquel tu essaye d'accéder.
2) Tu as indiquer un mauvais chemin vers un fichiers lors d'un accès.

PS : quel version de Windows as-tu? Sous windows Vista et Seven il y a beaucoup de dossier où tu ne peux pas écrire sans droits d'administration, ça expliquerais peut être ton erreur.
salut,
Effectivement je fais du "traîtement" d'images et je vois cette exception sur les icônes (.ico) mais pas sur les autres types d'images...

Sinon je peux lire et afficher n'importe quel type d'images (sauf icônes) venant de n'importe quel dossier (sauf windows etc.)!

Ci-joint la fonction ou j'affiche mes images:

try
{
FileStream photoStream = new FileStream(textBox1.Text, FileMode.Open);
pictureBox1.Image = Image.FromStream(photoStream);
photoStream.Dispose();
photoStream.Close();
}
catch (UnauthorizedAccessException) { fonctionException(); }
catch (DirectoryNotFoundException) { fonctionException(); }
catch (IOException) { fonctionException(); }
catch (ArgumentException) { fonctionException(); }

infos: Windows vista home premium

Voilà mais je ne crois pas que ça vienne d'un problème d'accès puisque je gère les exceptions qui y ont trait... et prévois d'afficher une image (un gros point d'interrogation!!!) au cas ou j'aurais justement un problème de ce genre.

Je te remercie d'avance.
A bientôt
Re,
Je viens d'essayer en retirant les lignes : photoStream.Dispose(); et photoStream.Close(); et dans ce cas les icones aussi sont affichées.

Mais nouveau problèmes, lorsque j'ai besoin de supprimer les images ou de les déplacer, j'ai un problème de thread utilisé... (l'image que je veux déplacer ou supprimer est alors utilisée par un thread et donc impossible à modifier)...

Sinon j'ai penser à créer un dossier pour y mettre toutes mes icônes que j'appellerai, "danger ICONES"!!!
Mais ce serai choisir la facilité!

Bref, à demain. La nuit porte conseil...