Im Anhang and das Problem:
funktioniert mein Programm und lässt sich kompilieren, aber der GC macht mir Striche durch die Rechnung (ich benutze kein Dospose und auch kein Multithreading).
Wie gehabt (ich wiederhole es kurz) habe ich 2 Klassen (Forms), wobei Form1 eine Menüleiste hat die Form2 (genannt Settings) aufruft. Das funktioniert einmal - aber sobald jemand Settings schließt und erneut aufruft wird die Exception an diesem Punkt geworfen:
public partial class Form1 : Form
{
Settings form2 = new Settings();
public Form1()
{
InitializeComponent();
try
{
ReadIniFile();
//create Event for Settings-Close
form2.FormClosed += Form2_FormClosed;
}
catch
{
MessageBox.Show("Initialisierung der ini-Datei fehlgeschlagen");
}
}
private void settingsToolStripMenuItem1_Click(object sender, EventArgs e)
{
form2.iniText = iniText;
form2.Show(); //hier Exception
}
Weiß jemand wie ich das verhindern kann und trotzdem sicher sein kann das beim Beenden des kompletten Programs auch wirklich nichts mehr den RAM belegt?
Ich weiß das eine Lösung wäre jedesmal eine neue Instanz zu erstellen, aber dann sind die labels (meine ich zumindest) leer die ich zu Beginn des Programs an Settings übergebe und auch mein Form-Closed Event würde nicht mehr funktionieren. Ideen wie ich dem Programm sagen kann das Form2 nicht weg geworfen werden soll wenn ich es schließe?