Autor Beitrag
tobias.t
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 09.01.09 15:12 
Guten nachmittag erstma,


Also mein erster Post hier, hoffe dass ihr mir da weiterhelfen könnt.

ich habe ein programm geschrieben, welches dateien von einem verzeichnis ausliest. für jede datei die gefunden wird, soll auf der form ein bild angezeigt werden. das habe ich versucht mit:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
                        int counter = 0;
      foreach (string fileName in System.IO.Directory.GetFiles("ordner"))
      {
        PictureBox pb = new PictureBox();
        pb.Click += new System.EventHandler(picturebox_click_event);
        pb.Text="Nummer: "+counter.ToString();
        pb.Height=100;
        pb.Width=100;
        pb.Top = 1+counter;
        pb.Left = 1;
        pb.Image=Image.FromFile("icon.jpg");
        this.Controls.Add(pb);
        counter += 50;
      }


Nun es existieren 3 dateien in dem verzeichnis, aber er zeichnet leider nur 1 bild.
ich bin die schleife durchgegangen, die wird aber schon 3x ausgeführt.


kann es sein dass er die bilder überschreibt?
wisst ihr dazu mehr?

Moderiert von user profile iconKha: Code- durch C#-Tags ersetzt
Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Fr 09.01.2009 um 15:22
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Fr 09.01.09 15:16 
naja du gehst zwar die schleife für jede datei durch, aber schau dir mal in deinem post die zeile 11 genau an.
Da liegt der Hund begraben ;)
tobias.t Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 09.01.09 15:29 
Ich sehe hier nur dass ich icon.jpg lade.
was auch korrekt ist, denn es sollte iegentlich für jede datei icon.jpg angezeigt werden...

oder verstehe ich jetzt was falsch?
tobias.t Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 09.01.09 15:50 
ähm habe jetzt mal 2 verschiedene bilder reingemacht und die geladen...
das funktioniert.

warum kann er das selbe bild nicht 2x anzeigen?
muss ich erst irgendwie "freigeben"?

ich würde nämlich gerne das selbe bild angezeigt haben... danke
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 09.01.09 17:23 
Hallo und noch :welcome:

user profile icontobias.t hat folgendes geschrieben Zum zitierten Posting springen:
warum kann er das selbe bild nicht 2x anzeigen?
muss ich erst irgendwie "freigeben"?

So ist es. Wenn Du schon selbst die richtige Idee hast, kannst Du das auch selbst in der SDK-Doku/MSDN nachlesen:
Zitat:
Image.FromFile-Methode (String)
Hinweise: Die Datei bleibt gesperrt, bis Image freigegeben wird.


user profile icontobias.t hat folgendes geschrieben Zum zitierten Posting springen:
ich würde nämlich gerne das selbe bild angezeigt haben... danke

Eine Möglichkeit wäre, die Datei temporär zu speichern und von dort aus zu laden.

Ich glaube, ich habe schon einmal von einer anderen "direkten" Lösung gelesen, erinnere mich aber nicht genauer. Jürgen
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 09.01.09 18:18 
Wenn du eh immer das selbe Bild anzeigen willst wieso erzeugt du dann jedesmal eine neue Image Instanz?
Erzeuge das Image nur einmal vor der Schleife und weise dieses dann den verschiedenen Pictureboxen zu.