Stackoverflowexception

Résolu
gzitoun Messages postés 61 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 10 décembre 2009 - 5 sept. 2007 à 11:50
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 - 5 sept. 2007 à 14:25
Salut!

je programme en C# pour pda via VS.

j ai un souci:  mon appli genere cette  erreur (stackoverflowexception) a  divers endroits  de mon  appli.

Je pense savoir pourquoi: je passe d une form a une autre dans mon appli en  cliquant sur le bouton suivant et  je  pensais  fermer  a chaque  fois la fenetre  precedente.  Or  j  ai  l  impression  qu  elles  se ferment  toutes  en  cascade quand  je  quitte  l  appli.

Donc au bout d un certain moment (peut etre apres 20 ecrans), j ai l impression que la memoire est saturee.

Voici un exemple de code de bouton suivant (je sais c est horrible de passer des variables a un autre form comme ca ):

 private void buttonDivers_Click(object sender, EventArgs e)
        {
            Divers fd = new Divers();

            fd.labelId_appat_gen.Text = labelId_appat_gen.Text;
            fd.labelSession.Text = labelSession.Text;
            fd.labelClient.Text = labelClient.Text;
            fd.labelLocalisation.Text = labelLocalisation.Text;
            fd.labelExtInt.Text = labelExtInt.Text;
            fd.labelSession_typeContrat.Text = labelSession_typeContrat.Text;

            fd.ShowDialog();

            this.Close();
        }

Que faut il modifier? (la place du close?)

Merci!

4 réponses

Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
5 sept. 2007 à 12:19
fait un fd.Show();

Si mes souvenir sont bon
le ShowDialog fonctionne sur le même principe que le MessageBox .
Donc quant tu fait un ShowsDialog le program attend une réponse et donc ne passe pas par this.Close();
3
gzitoun Messages postés 61 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 10 décembre 2009
5 sept. 2007 à 13:20
Encore un grand merci a mon sauveur...
0
gzitoun Messages postés 61 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 10 décembre 2009
5 sept. 2007 à 14:06
Salut,
 
j ai fait comme tu m as dit avec fd.Show();

Seulement, je me retrouve ejecte de l appli: on dirait "qu il n a pas le temps" de faire Show et qu il execute Close...

fd.Show();
this.Close();

A+
Merci
0
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
5 sept. 2007 à 14:25
J'ai testé et cela fonctionne sauf dans un cas.
Tu ne peux pas faire de this.Close() sur ta form principal

[MTAThread]
static void Main()
{
     Application.Run(new Form1());
}

car quand tu va faire le close tu stop ton appli.
Dans le cas de la form principal soit tu t'arrange pour que les autres fenêtre la masque ou bien tu lui fait this.hide() mais ensuite il faudra que tu trouve le bonne moment pour lui faire un this.show().
0
Rejoignez-nous