Dispose() ?

Hallo,

ich habe eine Frage zu dispose().

Hier kurz die Beschreibung was mein Programm machen soll:
Es gibt eine Klasse Form1, zwei Radio-Boxen. Über die definiere ich ob bei bestimmten Button-Clicks (hier ist exemplarisch nur einer aufgeführt) das Hintergrundbild gewechselt werden soll.

Da ich verschiedene Híntergrundbilder lade müsste das ja irgendwie bereinigt werden. Tut es aber nicht. Stelle ich nach ein paar mal Wechseln der Bilder die Radio-Box auf „nein“ (= false) so sehe ich immernoch das zuletzt gewählte Bild, je nach Größe meines Fensters (auch variabel) komplett oder aneinandergesetzt.

Es wäre super wenn mir jemand hier helfen könnte.

Vielen Dank für alle Mühe und lieben Gruß,
Michael

// Definition von Variablen … hier weggelassen
// u.a. private bool bild_jn = false; // per default
// …

public Form1()
{
InitializeComponent();

if (radioButton1.Checked)
{
bild_jn = true;
}

if (bild_jn)
{
this.BackgroundImage = new System.Drawing.Bitmap(„640x480.jpg“);
}
}

private void ueberPruef()
{
if (radioButton1.Checked)
{
bild_jn = true;
}
else
{
bild_jn = false;
}
}

protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

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

private void button1_Click(object sender, System.EventArgs e)
{
ueberPruef();
this.ClientSize = new System.Drawing.Size(640,480);
if (bild_jn)
{
this.BackgroundImage = new System.Drawing.Bitmap(„640x480.jpg“);
this.BackgroundImage.Dispose();
}
}

// …
// und hier sind noch einige andere Button-Clicks (unterscheiden sich
// lediglich im Hintergrundbild was sich ändert …

}