Picturebox Bildchange mit if verknüpfen

Eistiger

Grünschnabel
Hallo Leute,
mein Name ist Tom aber mein Spitzname Eistiger.
Ich bin 19 jahre alt und komme aus HRO.
Ich arbeite seit 2 Jahren mit C# bin aber noch lange nicht perfekt.
Daher habe ich eine Frage über etwas worüber ich mich seit Wochen ärgere.

Folgendes soll passieren:

Wenn in TextBox8 steht: test.ecm
Dann folgendes Bild in der PictureBox1 laden: ecm.jpg

Daten:
ecm.jpg ist als Eingebettete Ressource eingetragen und wird immer ins Ausgabeverzeichniss kopiert.
Die TextBox8 wird dadurch verändert das sie beim öffnen der Datei den Dateinamen ausspuckt und anzeigt.
Code:
                    string filename = "";
                    string path = "";
                    filename = System.IO.Path.GetFileName(openFileDialog1.FileName);
                    path = System.IO.Path.GetDirectoryName(openFileDialog1.FileName);
                    textBox7.Text = path;
                    textBox8.Text = filename;

Funktioniert auch super.

Versuche:
Versucht habe ich folgendes:

Code:
                    if (textBox8.Text = "test.ecm") ;
                    {
                        Image img = Image.FromFile(Application.StartupPath + "\\ecm.jpg");
                    }

Code:
                    if (filename = "test.ecm") ;
                    {
                        Image img = Image.FromFile(Application.StartupPath + "\\ecm.jpg");
                    }

Hoffe mir kann da jemand helfen.

Vielen Dank.
 

Eistiger

Grünschnabel
Hallo Cromon,
danke für ihre Hilfe.
Das hat soweit funktioniert leider will er die Bild datei nicht ausspucken.

Wie mache ich das jetzt am besten?

Code:
                    if (filename == "test.ecm") ;
                    {
                        PictureBox1.Image = ("ecm.jpg")
                    }

Damit habe ich es getestet.

Edit:
Habe es rausgefunden :)

Image img = Image.FromFile("ecm.jpg");
if (filename == "test.ecm")
{
pictureBox1.Image = img;
}
 
Zuletzt bearbeitet:

Cromon

Erfahrenes Mitglied
Also dein erster Ansatz war schonmal gut, hier:
C#:
Image img = Image.FromFile(Application.StartupPath + "\\ecm.jpg");

Du könntest vielleicht Application.StartupPath durch System.IO.Directory.GetCurrentDirectory() ersetzen, aber das ist Geschmackssache.

Dieses Image kannst du dann deiner picturebox zuweisen.

Ausserdem hast du noch ein kleines syntaktisches Problem nach deiner if-Anweisung, nämlich das ; Dadurch wird nämlich eigentlich folgendes passieren:
Code:
falls filename == "test.ecm"
      führe leere Anweisung (;) aus
Sonstiger Code

Das müsste also sein:
C#:
if (filename == "test.ecm")
{
        Image img = Image.FromFile(Application.StartupPath + "\\ecm.jpg");
        PictureBox1.Image = img;
}
 

Cromon

Erfahrenes Mitglied
Du kannst mir a propos gerne "Du" sagen, das machen wir hier eigentlich alle so, gibt ein entspannteres Ambiente. ;)

Um noch sicher zu stellen, dass die Datei auch wirklich existiert und nötigenfalls eine Exception zu werfen (oder den Benutzer per MessageBox darauf hinzuweisen) kannst auch noch ein
if (System.IO.File.Exists("ecm.jpg")) einfügen.