[C#] Form : Quelles méthodes ? Close, Dispose, Show, Hide
Bonjour,
Je débute je faisais du Java avant ;)
Je voudrais savoir quelle est la différence entre le Close et le Dispose.
Pourquoi après un dispose je ne peux pas faire un show (comme en java : setVisible(true)) ?
Après un dispose il faut refaire un new MaFentre() ?
Voila un peu de mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
partial class APropos : Form
{
private void okButton_Click(object sender, EventArgs e)
{
this.Close();
// this.Dispose(); ?
// this.Hide(); ?
}
}
public partial class Emma : Form
{
private APropos apropos = null;
public Emma()
{
InitializeComponent();
}
private void quitterToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Dispose();
// this.Close(); ?
}
private void aproposToolStripMenuItem_Click(object sender, EventArgs e)
{
if (apropos == null || apropos.IsDisposed) // comme ca ?
{
apropos = new APropos();
apropos.Show();
}
else
{
apropos.Show();
apropos.Focus();
}
}
} |
Re: Form : Close, Dispose, Show, Hide
Citation:
Envoyé par TheSeb
Après un dispose il faut refaire un new MaFentre() ?
ouaip, je crois que le dispose kill ta classe et libère la mémoire allouée pour ta classe, ce que ne fais pas le close().
Re: Form : Close, Dispose, Show, Hide
Citation:
Envoyé par reptils
Citation:
Envoyé par TheSeb
Après un dispose il faut refaire un new MaFentre() ?
ouaip, je crois que le dispose kill ta classe et libère la mémoire allouée pour ta classe, ce que ne fais pas le close().
C'est bien cela Close ferme la fenêtre mais l'objet reste actif, alors que dispose à pour but de "détruire" l'objet.
Re: Form : Close, Dispose, Show, Hide
Citation:
Envoyé par jab
Citation:
Envoyé par reptils
Citation:
Envoyé par TheSeb
Après un dispose il faut refaire un new MaFentre() ?
ouaip, je crois que le dispose kill ta classe et libère la mémoire allouée pour ta classe, ce que ne fais pas le close().
C'est bien cela Close ferme la fenêtre mais l'objet reste actif, alors que dispose à pour but de "détruire" l'objet.
Salut !
Es tu sur de ça ?
Je crois close cache la fenetre et appel dispose après .
Il faudrait vérifier mais je crois que j'ai eu des pb comme ça avec un appel à close qui en fait libere ta fenetre .
Re: Form : Close, Dispose, Show, Hide
Citation:
Envoyé par dev01
Salut !
Es tu sur de ça ?
Je crois close cache la fenetre et appel dispose après .
Il faudrait vérifier mais je crois que j'ai eu des pb comme ça avec un appel à close qui en fait libere ta fenetre .
Tu as peux être raison, je me demande si le Close n'appelle pas le dispose. Du moins c'est ce que dit la doc. Toutefois, j'ai fais un essai, dans une méthode, je fais un close et après dans la procédure qui a appelé la fenêtre, j'accède toujours aux propriétés :!:
Idem, quand tu cliques sur le bouton qui fait l'accept, la méthode closing est appelée d'ou il fait un close et pourtant après, l'objet existe toujours :!: