Fermer un Form et pouvoir le relancer plus tard

Résolu
bikini42 Messages postés 41 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 11 juin 2010 - 19 avril 2007 à 13:45
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 - 19 avril 2007 à 14:24
Bonjour à tous,

Je débute en C# et là je bloque depuis un bon moment sur ce problème.

J'ai créer un Form pour lancer des images (dans une PictureBox)

Je lance cette Form à partir d'une interface graphique en cliquant sur un bouton et, à partir de là, des images défilent automatiquement dans la picturebox de la Form lancée.

J'ai également mis un bouton Arret pour arreter l'affichage de ces images et fermer cette Form.

Cependant, j'aimerais pouvoir relancer l'affichage des images en recliquant sur le bouton de Départ des images.

Voici le code que j'utilise, en notant que j'ai public
Affichage_Image affIm =
new
Affichage_Image(); 

// Gérer l'affichage de la liste d'images

public
void Listim_Click(
object sender,
EventArgs e){

if (!ControleImage){

ControleImage =

true;

//afficher les imagesaffIm.Show();

}

}

// Gérer l'arrêt de l'affichage des images

private
void Stopim_Click(
object sender,
EventArgs e){

if (ControleImage){

ControleImage =

false;affIm.Close();

}

}

Lorsque je lance les images aucun pb, lorsque je clique sur Arrêt la fenetre disparait.

Mais lorsque je reclique sur le lancement d'images, j'ai cette erreur qui apaprait :

Impossible d'accéder à un objet supprimé.
Nom de l'objet : 'Affichage_Image'.

Si quelqu'un sait comment faire pour arrêter le défilement des images, fermer la fenêtre et permettre le relancement des images (du début, pas où elles se sont arretées) je suis vraiment preneur!!

Merci d'avance à vous tous!

6 réponses

Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
19 avril 2007 à 14:14
après avoir fait le close, eaasye de mettre affIm à null,et lors du 'show', fait systématiquement un test : if(affIm null) affIm new Affichage_Image();
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
19 avril 2007 à 13:53
au lieu de faire affIm.Close();
utilise affIm.Hide();

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
bikini42 Messages postés 41 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 11 juin 2010
19 avril 2007 à 13:57
J'ai déjà essayé Hide() mais cela ne fait que cacher la fenêtre, mais le processus continue et les images défielent en mémoire. Et lorsque je clique sur le lancement des images, je reprend là où les images en sont en mémoire.

Moi j'aimerais que le clic sur Arrêt stoppe le défilement des images et me permette de reancer la série dès le début.

Mais merci pour ta réponse rapide.
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
19 avril 2007 à 14:14
"eaasy" -> "essayes", sans les mouffles
0

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

Posez votre question
bikini42 Messages postés 41 Date d'inscription jeudi 5 janvier 2006 Statut Membre Dernière intervention 11 juin 2010
19 avril 2007 à 14:20
Et yessssss!!!! Merci  bcp Nikoui!!! Ca marche nickel!!

En mettant:

   // Gérer l'affichage de la liste d'images
        public void Listim_Click(object sender, EventArgs e)
        {
            if (!ControleImage)
            {
                if (affIm == null)
                { affIm = new Affichage_Image(); }
                ControleImage = true;
                //afficher les images
                affIm.Show();

            }

        }

        // Gérer l'arrêt de l'affichage des images
        private void Stopim_Click(object sender, EventArgs e)
        {
            if (ControleImage)
            {
                ControleImage = false;
                affIm.Hide();
                affIm = null;
               
               
            }
        }

Tout se passe comme prévu 

Merci bcp, super sympa!
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
19 avril 2007 à 14:24
Je pense qu'il vaut mieux mettre affIm.Close() a la place de Hide();... par ce que tu va réinstancier x fenêtre sans jamais les détruire sinon...
0
Rejoignez-nous