Fermer un Form et pouvoir le relancer plus tard [Résolu]

bikini42 41 Messages postés jeudi 5 janvier 2006Date d'inscription 11 juin 2010 Dernière intervention - 19 avril 2007 à 13:45 - Dernière réponse : Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention
- 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!
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 19 avril 2007 à 14:14
3
Merci
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();

Merci Nikoui 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Nikoui
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 19 avril 2007 à 13:53
0
Merci
au lieu de faire affIm.Close();
utilise affIm.Hide();

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
bikini42 41 Messages postés jeudi 5 janvier 2006Date d'inscription 11 juin 2010 Dernière intervention - 19 avril 2007 à 13:57
0
Merci
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.
Commenter la réponse de bikini42
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 19 avril 2007 à 14:14
0
Merci
"eaasy" -> "essayes", sans les mouffles
Commenter la réponse de Nikoui
bikini42 41 Messages postés jeudi 5 janvier 2006Date d'inscription 11 juin 2010 Dernière intervention - 19 avril 2007 à 14:20
0
Merci
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!
Commenter la réponse de bikini42
Nikoui 794 Messages postés vendredi 24 septembre 2004Date d'inscription 19 août 2008 Dernière intervention - 19 avril 2007 à 14:24
0
Merci
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...
Commenter la réponse de Nikoui

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.