Stackoverflowexception [Résolu]

Signaler
Messages postés
61
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
10 décembre 2009
-
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
-
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

Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
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();
Messages postés
61
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
10 décembre 2009

Encore un grand merci a mon sauveur...
Messages postés
61
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
10 décembre 2009

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
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
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().