Entwickler-Ecke
WinForms - Newsfeed mit Bildern?
Maldö - So 09.01.11 07:20
Titel: Newsfeed mit Bildern?
Hi,
Ich baue in meinen Downloader auf der Startseite einen Newsfeed ein. Der klappt auch super! Die News kommen wie ich will per XML an und werden ausgegeben.
In der XML gibt für jeden Newsbeitrag das Attribute: picture
das beinhaltet entweder das "Nopic.jpg" oder das für den newsbeitrag.
Jenachdem ob eins angegeben wurde.
Da es meine Webseite ist weiß ich ja wo da Bild liegt und brauche nur den Dateinamen :-)
Aber wie liste ich den Bilder neben meinen Newsbeiträgen auf?.
Ich hab da an eine PictureBox gedacht under BackgroundLayout.Zoom das BIld immer auf Top Größe halten.
leider zeigt er immer nur das bild von EINER PictureBox an.
Hier der Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| PictureBox[] Pi = new PictureBox[images]; for (int u = 0; u < images-1; i++) {
if (File.Exists(Application.StartupPath + @"\feed\" + i + "_news.jpg")) { Pi[u] = new PictureBox(); Pi[u].BackgroundImage = Image.FromFile(Application.StartupPath + @"\feed\" + i + "_news.jpg"); Pi[u].BackgroundImageLayout = ImageLayout.Zoom; Pi[u].Size = new Size(100, 300); Pi[u].Location = new Point(groupBox1.Width - 400, locz3); locz3 = locz3 + 100; } }
foreach (PictureBox Pbox in Pi) { panel2.ExecuteThreadSafe(() => panel2.Controls.Add(Pbox)); } |
Gibt es dafür vieleicht einfachere Methode oder bessere?
vg
Maldö
jaenicke - So 09.01.11 09:31
Maldö hat folgendes geschrieben : |
C#-Quelltext 1: 2: 3: 4:
| for (int u = 0; u < images-1; i++) {
if (File.Exists(Application.StartupPath + @"\feed\" + i + "_news.jpg")) | |
Also irgendwie bist du mit deinen Schleifenvariablen durcheinander gekommen... und da u nie verändert wird, sollte das eine nette Endlosschleife sein, wenn denn i überhaupt existiert...
Maldö - So 09.01.11 09:55
danke....
leider zeigt er weiterhin nur 1 bild an :(
jaenicke - So 09.01.11 09:58
Was heißt das denn? Ein Bild mehrfach? Nur ein Bild insgesamt?
Maldö - So 09.01.11 10:00
jaenicke hat folgendes geschrieben : |
Was heißt das denn? Ein Bild mehrfach? Nur ein Bild insgesamt? |
ein bild gesamt...
restlichen picture boxes bleiben leer..(erkenne ich am rahmen, den sie erzeugen)
jaenicke - So 09.01.11 10:05
Und was sagt der Debugger? Wenn du da Schritt für Schritt durchgehst, stimmen die Dateinamen usw.?
Und wie sieht der Code denn jetzt aus?
Maldö - So 09.01.11 10:36
also die Dateinamen stimmen alle...
Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| string[] files = Directory.GetFiles("feed", "*.jpg"); int images = files.Length;
int locz3 = 60; PictureBox[] Pi = new PictureBox[images]; for (int u = 0; u < images-1; u++) {
if (File.Exists(Application.StartupPath + @"\feed\" + u + "_news.jpg")) { Pi[u] = new PictureBox(); Pi[u].BackgroundImage = Image.FromFile(Application.StartupPath + @"\feed\" + u + "_news.jpg"); Pi[u].BackgroundImageLayout = ImageLayout.Zoom; Pi[u].BorderStyle = BorderStyle.FixedSingle; Pi[u].Size = new Size(100, 300); Pi[u].Location = new Point(groupBox1.Width - 400, locz3); locz3 = locz3 + 100; } }
foreach (PictureBox Pbox in Pi) { panel2.ExecuteThreadSafe(() => panel2.Controls.Add(Pbox)); } |
jaenicke - So 09.01.11 12:36
Gut, schaue ich mal nochmal drauf...
Also du setzt die Größe des Bildes auf 300, und versetzt das nächste dann nur um 100? Naja, meinst du nicht, dass sich das dann überlappt?
Maldö hat folgendes geschrieben : |
Pi[u].Size = new Size(100, 300);
Pi[u].Location = new Point(groupBox1.Width - 400, locz3);
locz3 = locz3 + 100; |
Maldö - So 09.01.11 21:36
aye....stimmt....danke jetzt funzt es:-)
perfekt:D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!