C# Problem bei BackgroundImage und Referenz auf Resources
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
bestimmten aktionen
bild
code
datei
einfache zuweisung
fehler
figur
file
grafik
hintergrund
image
laden
methode
pfad
position
problem
referenz
schachbrett
string
system
-
Hallo zusammen,
ersteinmal ich benutze c# 2008 Express Edition.
Ich habe eine Picturebox und ein Bild in die Resourcen geladen, nun möchte ich das BackgroundImage Attribut der PictureBox auf diese Resource setzen. Die Resource heisst "Schachbrett.gif".
Wie weise ich das nun zu?
Ich habe schon:
pictureBox1.BackgroundImage = SimpleShapeBackGroundImageCS.Properties.Resources.Schachbrett.gif;
und
pictureBox1.BackgroundImage = My.Resources.Schachbrett.gif;
probiert doch bei beiden erhalte ich den Fehler, dass entweder "SimpleShapeBackGroundImageCS" oder "My" im aktuellen Context nicht vorhanden ist...
private void Schach_Load(object sender, EventArgs e) { pictureBox1.BackgroundImage = SimpleShapeBackGroundImageCS.Properties.Resources.Schachbrett.gif; }
Desweiteren habe ich nun ein Object "Figur":
Hier mal der Code:
public class Figur { private int intMoves; // Anzahl bisherige Züge private bool blFarbe; // True = Weiss || False = Schwarz private int[] intPosition = new int[2]; // Position public void Figur(bool blFarbe, int[] intPosition) { this.intMoves = 0; this.blFarbe = blFarbe; setPosition(intPosition); } public void setPosition(int[] intPosition) { this.intPosition[0] = intPosition[0]; // Neues x this.intPosition[1] = intPosition[1]; // Neues y } public int getMoves() { return intMoves; } public void setMoves() { intMoves++; } public int[] getPosition() { return this.intPosition; // Return Position } }
Nun möchte ich natürlich bei jedem Object noch eine Referenz auf das dazugehörende "Bild" von den Resourcen dazu speichern.
Welchen Datentyp muss ich verwenden oder wie mache ich dies am besten?
Gruss -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
nutz doch einfach den designer von microsoft.
picturebox anklicken -> eigenschaften -> backgroundimage -> auf "..." klicken -> dialog öffnet sich -> bild auswählen -> ok -> fertig -
Dies ist nicht möglich, da ich den Hintergrund bei bestimmten Aktionen ändern muss...
-
fr3z3r schrieb:
Dies ist nicht möglich, da ich den Hintergrund bei bestimmten Aktionen ändern muss...
Es wäre aber eine ideale Grundlage. Denn du müsstest nur den Basiscode entsprechend anpassen bzw. von außen dann das Bild wechseln.
Von welcher Instanz werden deine Grafiken denn geladen? Vom Form(1) oder von einem separaten Loader? -
ich verstehe zwar dein Problem nicht ganz, aber eine einfache zuweisung von einem Bild auf eine picturebox musst du über:
pictureBox1.Image = "FullName"
bsp:
pictureBox1.Image = ""+ Directory.GetCurrentDirectory()+"Schachbrett.gif";
falls du ein Bild nur "Laden" möchtest, musst du die Methode Load(pfad) gebrauchen.
-
daevu2k69 schrieb:
ich verstehe zwar dein Problem nicht ganz, aber eine einfache zuweisung von einem Bild auf eine picturebox musst du über:
pictureBox1.Image = "FullName"
bsp:
pictureBox1.Image = ""+ Directory.GetCurrentDirectory()+"Schachbrett.gif";
falls du ein Bild nur "Laden" möchtest, musst du die Methode Load(pfad) gebrauchen.
Genau das mein ich...
Nur bei
pictureBox1.Image = ""+ Directory.GetCurrentDirectory()+"Schachbrett.gif";
bekomme ich den Fehler: Der Name Directory ist im aktuellen Context nicht vorhanden... Daher meine Frage wie ich auf die Resoucren zugreifen kann... -
using System.IO;
danach wäre DIESER fehler behoben, vielleicht kriegste jetzt einen neuen, posten plz :-) -
So mit using System.io gehts schon einmal ein Schritt weiter:
Bei
pictureBox1.Image = "" + Directory.GetCurrentDirectory() + "Schachbrett.gif";
bekomme ich noch den Fehler das ein String nicht in ein System.Drawing.Image umgewandelt werden kann...
Dann hab ich mir gedacht mach ich halt ein
pictureBox1.Image = Bitmap.FromFile("" + Directory.GetCurrentDirectory() + "Schachbrett.gif");
draus aber auch das funktioniert nicht und bricht mit einer File not Found exeption ab. -
In welchem Verzeichnis liegt denn die Schachbrett.gif Datei? Vielleicht fehlt aber auch einfach nur der BackSlash am Ende des Pfads, denn afaik liefert GetCurrentDirectory() selbigen ohne Backslash zurück.
-
string strImgPath = Directory.GetCurrentDirectory() + @"\Schachbrett.gif"; Bitmap bmpTemp = new Bitmap(strImgPath); pictureBox1.Image = bmpTemp;
kannst natürlich mit "if(File.Exists(strImgPath))" noch überprüfen ob dein "Schachbrett.gif" auch wirklich existiert, falls nicht, solltest du überprüfen ob sich die Datei Schachbrett.gif auch wirklich mitkopiert, und vielleicht mal manuell in den bin/debug ordner kopieren.
Beitrag zuletzt geändert: 17.9.2009 10:58:17 von daevu2k69 -
Genau das wars...
Hab nun die Grafiken manuell kopiert und nun greif ich
string strImgPath = Directory.GetCurrentDirectory() + @"\Grafiken\Schachbrett.gif"; Bitmap bmpTemp = new Bitmap(strImgPath); pictureBox1.Image = bmpTemp;
darauf zu.
Danke an alle -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage