bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010
-
11 mai 2007 à 16:10
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
16 mai 2007 à 21:54
Bonjour à tous,
Je vous écris car je progresse petit à petit en C# mais là je suis cofronté à un problème que je n'arrive pas à résoudre.
Mon programme affiche aléatoirement des images pendant 2 secondes puis affiche un fond blancau bout des 2 secondes. Quand l'utilisateur appuie sur Espace, l'image suivante s'affiche etc... Tout ceci s'affiche dans une PictureBox.
Mon problème est le suivant : aléatoirement, j'ai une exception qui arrête le programme, me met en surbrillance la dernière ligne de code suivante pictureBox1.Image = croix; du code suivant :
public
void Affichage_Image_Load(
object sender,
EventArgs e){
Code =
"Croix";
// On affiche la croix centrale pictureBox1.Image = croix;
}
// Fonction pour tirer aléatoirement l'indice d'une image SANS REMISE
public
void Valea(
ArrayList list,
out
int valeur){
valeur = 0;
// On trouve l'indice du dernier élément du tableau
int LastElementIndex = list.Count-1;
// On trouve un indice aléatoire dans le nombres d'indices possibles
int index = RandomClass.Next(0, LastElementIndex);
// On retient la valeur aléatoire tirée valeur = (
int)list[index];
// On remplace la valeur contenue à l'indice tirée par celle
// du dernier élément du tableau list[index] = list[LastElementIndex];
// On retire le dernier élément du tableau list.RemoveAt(LastElementIndex);
}
// Code pour déclencher l'affichage de l'image en pressant Espace
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 14 mai 2007 à 10:11
Puisque tu sembles être dans une Form, tu peux utiliser un System.Windows.Forms.Timers si le contexte si prête.
Ca devrait t'éviter ce genre de problème ^^
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 15 mai 2007 à 10:24
C'est un peu différent, mais tu peux en principe faire la même chose.
Pour le Elapsed, l'équivalent est Tick, pour l'autoReset, je ne sais plus par coeur ce que ça fait, mais faire un Start/Stop pouRRait provoquer un fonctionnement similaire...
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010 14 mai 2007 à 09:23
Merci coq pr ton indication ;)
Cependant, je ne vois pas où mes opérations peuvent se croiser puisque mon Elapsed s'effectue après l'écoulement d'un timer et que, à la fin du timer, je remplace seulement l'image d'une picturebox par une autre....
Je ne vois donc pas comment appréhender le pb dont tu me parles sur mon programme et donc encore moins pour utiliser les commandes begininvoke etc...je suis un peu perdu là lol
Vous n’avez pas trouvé la réponse que vous recherchez ?
bikini42
Messages postés41Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention11 juin 2010 15 mai 2007 à 13:05
Coucou Bidou!
J'ai mis en place ta proposition, en mettant le nouveau type de Timer que tu me proposais et j'ai effectivement pu trouver le Tick pour remplacer Elapsed, ainsi que start et stop pour gérer le autoreset !!
et bilan des courses.....ça fonctionne parfaitement, sans erreur, sans exception levée !!!!!!
Merci bcp bcp tu m'enlève une grosse épine du pied!
Merci bcp et à charge de revanche (même si je ne vois pas en quoi je pourrais t'aider vues nos différences de nivaux en prog lol)!