Hintergrundbild ändern funktioniert nicht (Forms)



  • Hey Leute!
    Ich arbeite noch nicht so lange mit Forms, kenne mich aber mitlerweile schon gut aus.
    Nur ein Problem macht mich fertig: Ich habe schon öfter das Hintergrundbild zur Laufzeit verändert, doch plötzlich funktioniert es nicht mehr. Irgendwas mache ich falsch.
    Nur was?
    Ich verwende folgenden Code:

    this->BackgroundImage = Bitmap::FromFile("img29.jpg");
    (img29 ist natürlich im Verzeichnis des Projekts. Auch mit anderen Bildern geht es nicht.)

    Ich weiß, ich habe irgendwas vergessen, aber keine Ahnung was...
    Aber dafür sind Foren doch da! 😃



  • "~/img29.jpg"



  • Funktioniert leider auch nicht...
    Folgende Fehlermeldung taucht immer wieder auf:

    Eine nicht behandelte Ausnahme des Typs "System.IO.FileNotFoundException" ist in System.Drawing.dll aufgetreten.

    Zusätzliche Informationen: ~/img29.jpg



  • Kunzi schrieb:

    Funktioniert leider auch nicht...
    Folgende Fehlermeldung taucht immer wieder auf:

    Eine nicht behandelte Ausnahme des Typs "System.IO.FileNotFoundException" ist in System.Drawing.dll aufgetreten.

    Zusätzliche Informationen: ~/img29.jpg

    Sorry hab zu schnell gelesen....

    Das sollte abr funzen...

    using namespace System::IO;
    
    this->BackgroundImage = Bitmap::FromFile(Directory::GetCurrentDirectory()) + "\\img29.jpg";
    


  • Leider nein.
    Habe eine neue Form geöffnet und den Code dort eingefügt.
    Wie gesagt, ich arbeite noch nicht lange mit Forms, weiß also nicht, was diese Fehlermeldung zu bedeuten hat (oder wie man das Problem löst):

    error C2664: 'System::Windows::Forms::Control::BackgroundImage::set': Konvertierung des Parameters 1 von 'System::String ^' in 'System::Drawing::Image ^' nicht möglich
    

    Vielleicht hilft es irgendwem zu wissen, das ich mit Vista arbeite... Habe damit schon öfter eigenartige Probleme beim programmieren gehabt.



  • Die Klammer sitzt falsch oder?

    using namespace System::IO;
    
    this->BackgroundImage = Bitmap::FromFile(Directory::GetCurrentDirectory() + "\\img29.jpg");
    

    Dafür muss die Bilddatei aber im selben Verzeichnis liegen wie das Programm zu dem Zeitpunkt zu dem es ausgeführt wird...



  • DANKE DANKE!!!!!!

    Es funktioniert!!!
    Keine Ahnung, was falsch war... 😕

    Danke!



  • Falsch war, dass die Funktion Bitmap versucht hat den String aktuelles Verzeichnis in eine Bilddatei umzuwandeln. Mit der richtig gesetzten Klammer wird nun zum aktuellen Verzeichnis noch der Dateiname hinzugefügt und somit kann Bitmap eine Bilddatei einlesen...


Anmelden zum Antworten