Ich habe Bilder die mit Timern nacheinander gezeigt werden. Aber wenn ich die Form wechsle hat es den anschein als ob er die Resources Bilder nicht mehr finden kann. Bitte um Hilfe.
private void timer2_Tick(object sender, EventArgs e)
{
if (----->File.Exists == _3.Properties.Resources._23_Load_2) // Wenn ich die ActiveForm wechsele tritt ein fehler auf da er die Resources nicht mehr finden kann.
//Womit kann ich prüfen ob das Bild in Resources exsiestiert oder nach der active form prüfen?
{
Form1.ActiveForm.BackgroundImage = _3.Properties.Resources._23_Load_2;
}
timer3.Enabled = true;
timer2.Enabled = false;
}
Hallo Ayke,
prüfen kannst du mit == null.
Was meinst du mit Form wechseln? Den Code in ein anderes Form kopieren/verschieben?
herbivore
Nein ich wechsle die Anwendung unten in der Start Leiste.
File.Exists habe ich nur als beispiel geschrieben damit das verständlicher ist was ich meine da ich damit leider nicht die Resourcen in Programm prüfen kann.
Hallo Ayke,
naja, _3.Properties.Resources._23_Load_2 == null
herbivore
Habe es durchgelesen und dies Hilft mir nicht weiter. Es ist einglich ein sehr Simpler Code mein Programm besteht bis jetzt aus nix weiter als
private void timer1_Tick(object sender, EventArgs e)
{
if (_3.Properties.Resources.Load1 != null)
{
Form1.ActiveForm.BackgroundImage = _3.Properties.Resources.Load1;
}
timer2.Enabled = true;
timer1.Enabled = false;
}
private void timer2_Tick(object sender, EventArgs e)
{
if (_3.Properties.Resources.Load2 != null)
{
Form1.ActiveForm.BackgroundImage = _3.Properties.Resources.Load2;
}
timer3.Enabled = true;
timer2.Enabled = false;
}
private void timer3_Tick(object sender, EventArgs e)
{
if (_3.Properties.Resources.Load3 != null)
{
Form1.ActiveForm.BackgroundImage = _3.Properties.Resources.Load3;
}
timer4.Enabled = true;
timer3.Enabled = false;
}
private void timer4_Tick(object sender, EventArgs e)
{
if (_3.Properties.Resources.Load4 != null)
{
Form1.ActiveForm.BackgroundImage = _3.Properties.Resources.Load4;
}
timer5.Enabled = true;
timer4.Enabled = false;
}
private void timer5_Tick(object sender, EventArgs e)
{
if (_3.Properties.Resources.Load5 != null)
{
Form1.ActiveForm.BackgroundImage = _3.Properties.Resources.Load5;
}
timer1.Enabled = true;
timer5.Enabled = false;
}
wenn keiner eine Lösung weis verwende ich eine Gif.
Hallo Ayke
Schau mal hier, dann wirst du feststellen, dass die statische Eigenschaft ActiveForm (Wie der Name schon sagt) die momentan aktive Form enthält. Wenn du in der Taskleiste die Anwendung wechselst, ist natürlich keine Form1 mehr aktiv und die Eigenschaft ActiveForm ist null. Du hast also einfach an der falschen Stelle das null vermutet. Das hättest du aber eigentlich schon beim debuggen merken müssen. Verwende besser "this" um auf die aktuelle Instanz von Form1 zuzugreifen.
mfg dechavue
Hab normalerweise immer this verwendet. Hab aber voher kein unterschied gemerkt. Naja jetzt weiss ich wo der ist.
Danke dechavue