Entwickler-Ecke
Sonstiges (.NET) - PictureBox : bild aus Ressourcendatei einfügen : Kniffel
darkangel1208 - So 29.11.09 17:15
Titel: PictureBox : bild aus Ressourcendatei einfügen : Kniffel
Ic hhabe mir ein pictureBox array gemacht in den meine 5 Picturboxen sind (dices[5])
Nun will ich aus der Ressourcendatei ein Bild einfügen lassen. Wenn ich den namen (_1) direkt angebe geht es, aber ich habe den Namen in einem String-Array würfel gespeichert und will nun den Arrayplatz angeben. Der einfachheithalber habe ich den Bildern die namen 1,2,3 ect verpasst.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| würfel = new String[6] { "_1", "_2", "_3", "_4", "_5", "_6" }; for(int i = 0; i < 5; i++) { rollen[i] = rnd.Next(1, 7); dices[i].BackgroundImage = global::Kniffel1.Properties.Resources._1; dices[i].BackgroundImage = global::Kniffel1.Properties.Resources.würfel[Convert.ToString(rollen[i-1])]; } |
Er meckert aber Fehler "Kniffel1.Properties.Resources" enthält keine Definition für "würfel".
Kha - So 29.11.09 17:47
Der einfachste Weg dürfte sein, für die Images ebenfalls ein Array anzulegen:
C#-Quelltext
1:
| var images = new Image[] { Resources._1, Resources._2, ... } |
darkangel1208 - So 29.11.09 19:00
naja ich hatte jetzt nur ein Array angelegt, das nur die namen der Bilder enthält. aber ein Array anzulegen das das komplette Bild enthält, auf die Idee bin ich nicht gekommen.
aber irgendwie klappt das noch net so recht, was du mir da an die Hand gegeben hast.
bist du sicher das das so gemeint ist?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var images = new Image[] { Resources._1, Resources._2, ... } var images = new Image[2] { Resources._1, Resources._2 } var images = new Image[] { global::Kniffel1.Properties.Resources._1 };
dices[i].BackgroundImage = images[0];
dices[i].BackgroundImage = global::Kniffel1.Properties.Resources._bild; dices[i].BackgroundImage = global::Kniffel1.Properties.Resources.würfel [ Convert.ToString ( rollen[i-1] ) ]; |
Kha - So 29.11.09 19:09
darkangel1208 hat folgendes geschrieben : |
| bist du sicher das das so gemeint ist? |
Japp :D . Mit einem
using Kniffel1.Properties solltest du dir diese schrecklichen Präfixe sparen können.
Was willst du mir damit sagen? Wenn du das Array nur einmal, also z.B. im Form-Konstruktor, anlegen willst (was sicherlich sinnvoll wäre), darfst du es nicht in eine
lokale Variable speichern, sondern musst ein Klassenfeld benutzen.
MoBBer - So 29.11.09 19:29
So wie Kha es geschrieben hat funktioniert es einwandfrei. Hab es hier an einem kleinen Beispiel ausprobiert.
Läuft wunderbar.
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: 26: 27:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using WindowsApplication1.Properties;
namespace WindowsApplication1 { public partial class Form1 : Form { Image[] bilder = new Image[2] {Resources._1, Resources._2 }; public Form1() { InitializeComponent();
PictureBox[] pbxe = new PictureBox[2] { this.pictureBox1, this.pictureBox2 }; Random zufall = new Random(); for (int i = 0; i < 2; i++) { pbxe[i].BackgroundImage = this.bilder[zufall.Next(0, 2)]; } } } } |
mfG MoBBer
darkangel1208 - So 29.11.09 19:53
ja ok jetzt gehts. mir ist irgendwie das
using Kniffel1.Properties;
durch die Lappen gegangen.
Danke das hat mein Leben gerettet.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!