Bonjour,

Windows XP SP2
Visual C# Express
Framework 2.0
Mon application Windows Form contient un formulaire utilisé comme un AboutBox, Ce formulaire affiche différentes informations :
En voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 
public class FormAbout : System.Windows.Forms.Form
{
public FormAbout()
	{
	    // Intialisation des objets de la fenêtre
	    InitializeComponent();
            // Récupération des informations de l'assembly
            LabelVersion.Text = Application.ProductName + " " +  
            Application.ProductVersion;
            LabelFrameWorkVersion.Text = Environment.Version.ToString(); 
            // Récupération de la mémoire allouée
            labelMemory.Text = string.Format("{0:D} 
            Ko",(Environment.WorkingSet/1024));
 
            // Récupératon des modules chargés {Nom, Version, Date}.
	    try 
	    {
		    // Récupération de la liste des modules
		    ArrayList ndocItems = new ArrayList();
		    foreach (ProcessModule module in 
                    Process.GetCurrentProcess().Modules)
		    {
			    ListViewItem item = new ListViewItem();
			    item.Text = module.ModuleName;
			    // Récupération du N° de version
			    FileVersionInfo verInfo = module.FileVersionInfo;
			    string versionStr = String.Format("{0}.{1}.{2}.{3}", 
                            verInfo.FileMajorPart,
                            verInfo.FileMinorPart,
                            verInfo.FileBuildPart,
                            verInfo.FilePrivatePart);
 
              		    item.SubItems.Add(versionStr);
			    // Récupération de la date
			    DateTime lastWriteDate =  
                            File.GetLastWriteTime(module.FileName);
				   string dateStr = lastWriteDate.ToString("g");
				    item.SubItems.Add(dateStr);
                            // Ajout de l'élément dans la liste
			    assembliesListView.Items.Add(item);
	   }
	}
	 catch (Exception ex)
	 {
	    MessageBox.Show(this, ex.ToString(), "Erreur sur la récupération des  
             information des dépendances", MessageBoxButtons.OK, 
              MessageBoxIcon.Error);
	 }
  }
 
  protected override void Dispose( bool disposing )
  {
    if (disposing)
    {
	    if (components != null)
    {
	    components.Dispose();
    }
  }
  base.Dispose(disposing);
  }
     private void BtcClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
	}
Ce formulaire est affiché par l'intermédiaire d'un bouton
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
private void btcViewAbout_Click(object sender, EventArgs e)
        {
            FormAbout lForm = new FormAbout();
            lForm.ShowDialog();
        }
Question 1 : A chaque fois que j'affiche ce formulaire, la taille mémoire pour mon application augmente, de 100 à 350 Ko, est ce normal ?

Question 2 : Je remarque que si je minimize dans la barre des taches mon application, et que je l'affiche à nouveau, la taille mémoire de mon application à considérablement diminuée !, Pourriez vous m'indiquer pourquoi ?

J'ai pris ma fenêtre About comme exemple, mais celà e produit sur tous mes formulaires MDI également. et mon application passe de 15Mo au démarrage, à 98 Mo apres plusieurs ouverture de formulaire MDI qui contient des données sous forme de Chart.
Et apres un minimize, l'application passe à 10Mo voir 12 Mo.

Merci d'avance pour votre aide.
Cldt,