[C#] Zu blöd, um ein Bild in einer PictureBox zu ändern...

Xai

Grünschnabel
Naja, mein Topic sagt eigentlich schon alles:
Ich habe eine PictureBox, und möchte das Bild ändern..
Code:
Image img = Image.FromFile("/cards/2-D.jpg");
PictureBox.Image = img;

So müsste es gehen, oder?
Nur findet er mir leider das Bild nicht.
Muss ich jedes mal den kompletten Pfad angeben? Wenn mein Programm in C:\Programme\Programm ist, und die Bilder in C:\Programme\Programm\cards sind, reicht es doch, wenn ich '/cards/2-D.jpg" als Pfad angebe, oder?

Folgende andere versionen hab ich schon versucht:
\\..\\cards\\2-D.jpg
..\\cards\\2-D.jpg
\cards\2-D.jpg
../cards/2-D.jpg

Er findet das Bild nie.. (ja, richtig geschrieben ist es)
oder muss ich tatsächlich immer den kompletten Pfad angeben? Dann ist das Programm doch hinfällig, wenn es mal auf einem anderen PC getestet wird..

Wäre sehr dankbar für Hilfe..
MfG
Xai
 
Probiers mal mit
C#:
Image img = Image.FromFile(Application.StartupPath + "\\cards\\2-D.jpg");
Schöner ist es wenn du die Pfadteile via Path.Combine zusammenhängst. Und weiters solltest du das Bild nach Gebraucht mit img.Dispose() wieder verwerfen.
 
Probier es mal mit string picture = Path.GetFullPath(@"..\picture.jpg");
Das funktioniert dann auch relativ.

Gruß iki.
 
Hi, danke für die schnelle Hilfe, nur geht's noch immer nicht ^^

Bei der Version von Norbert Eder:
C:\Dokumente und Einstellungen\Eigene Dateien\SharpDevelop Projects\poker\bin\Debug\cards\2-D.jpg??
Man beachte die seltsamen Sonderzeichen nach dem .jpg, wo kommen die her? Die hatte ich nirgends hingeschrieben..

Code:
Image img = Image.FromFile((Application.StartupPath + "\\cards\\2-D.jpg"));

Bei der Version von ikays:
Kommt die gleiche Fehlermeldung wie immer, und zwar:

Ausnahme System.IO.FileNotFoundException wurde im ausgeführten Programm ausgelöst.

Was sehr seltsam ist, denn der komplette Pfad wird angegeben und ist korrekt..
Code:
Image img = Image.FromFile(Path.GetFullPath(@"..\2-H.jpg"));

Der Fehler kommt übrigens auch bei der ersten Version von N. Eder


Stört den vielleicht der Bindestrich im Dateinamen?

Edit: Wundert euch nicht über die verschiedenen Dateinamen, es existieren beide.
 
Sorry mein Fehler! Dachte du wolltest ein Pfad zurück.
Die Lösung von Norbert Eder ist natürlich die die du brauchst.
Was die zwei Sonderzeichen dort suchen....gute Frage.

Versuch es mit einem @ Zeichen
Code:
string picPath = Application.StartupPath + @"\cards\2-D.jpg";

und wenn du es ganz genau haben willst benutzt am besten noch
Path.DirectorySeparatorChar

Du kannst dann natürlich auch mit Path.GetFullPath(); rum experimentieren und dir den Path von .net geben lassen.

Gruß iki.
 
Zuletzt bearbeitet:
Es geht noch immer nich..
Code:
		string str_Path = Path.GetFullPath(@"..\2C.jpg");
		MessageBox.Show(str_Path,"blubb",MessageBoxButtons.OK);
		Image img = Image.FromFile(str_Path);

Ich habe den Bindestrich entfernt, es macht keinen Unterschied...

Ich gebe mit der MessageBox den Pfad aus, der stimmt genau. Trotzdem kommt dieselbe Fehlermeldung...
Und wenn ich's mit dem Application.StartupPath mache, hab ich diese sonderzeichen am ende, auch wenn ich im code ein @ mach..

Habe ich sonst irgendwie die Möglichkeit, bilder in meiner picbox zu ändern?
 
Bezüglcih Sonderzeichen: Da hast du wohl noch etwas extra mit angegeben. Sonst wäre das Sonderzeichen nicht da.
Ich hatte bis dato keine Probleme damit. Und ich nutz das schon sehr lange.

Manchmal macht es auch Sinn, etwas nachzulesen. Entweder du verwendest "\\meinPfad\\" oder eben @"\meinPfad\".
 
Natürlich sind "\\pfad1\\pfad2" mit Escape-zeichen und @"\pfad1\pfad2" das gleiche, um dich nicht durcheinander zu bringen.
Allerdings kann man nie wissen was ein User da noch mit einbringt,
Von daher finde ich es mit @ davor sicherer.

Ansonsten schließe ich mich Norbert Eder an. Benutze es, wie sehr viele andere ".net'ler", auch schon länger und hatte bis jetzt keine Probleme damit.
 
hi, ich hab mal nen screenshot gemacht, vielleicht könnt ihr mehr damit anfangen..
 

Anhänge

  • error.jpg
    error.jpg
    66,2 KB · Aufrufe: 1.914

Neue Beiträge

Zurück