Entwickler-Ecke

IO, XML und Registry - Hintergrundbild mit relativen pfad laden!! wie???


skiller - Mi 10.06.09 09:36
Titel: Hintergrundbild mit relativen pfad laden!! wie???
ja bin neu hier in der progammiererszene und hab da mal ne frage!!!

wir müssen in der schule ein projekt machen und ich habe ein problem, habe auch nichts in der suche gefunden!!!!

also ich will ein hintergrundbild per radio button öffnen aber es geht nur wenn ich den pfad absolut eingebe und nicht relativ weiß nicht wie ich den relativen pfad angeben soll !!!!

bitte helft mir mal !!!

lg skiller


Moderiert von user profile iconKha: Topic aus C# - Die Sprache verschoben am Mi 10.06.2009 um 11:30


jaenicke - Mi 10.06.09 09:38

Wie wäre es mit Application.StartupPath [http://msdn.microsoft.com/de-de/library/system.windows.forms.application.startuppath.aspx]? ;-)


skiller - Mi 10.06.09 10:05

sou habs anders gelöst!!!

*C#-Code*

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
try
{

this.BackgroundImage = new Bitmap("../../../pics/2826_custom_1.bmp");
this.BackgroundImageLayout = ImageLayout.Stretch;
}
catch (Exception)
{
MessageBox.Show("Bild konnte nicht geladen werden.");
}
}

lg skiller


jaenicke - Mi 10.06.09 10:06

So funktioniert es aber nur rein durch Zufall...

Denn so verwendest du das Arbeitsverzeichnis und das hat nicht viel mit dem Verzeichnis zu tun, in dem deine Exe liegt. Es ist nur meistens beim Start identisch, aber sobald du z.B. einen Öffnendialog aufrufst nicht mehr...


skiller - Fr 12.06.09 13:55

ja aber wie schreib ich das dann mit Application.StartupPath??

hab jedz schon so viel probiert aber wie schreib ich diese meldung dann???

mfg


jaenicke - Fr 12.06.09 13:58

Vielleicht so?

C#-Quelltext
1:
2:
this.BackgroundImage = new Bitmap(Application.StartupPath 
  + @"\..\..\..\pics\2826_custom_1.bmp");
So stimmen auch die Schrägstriche, die waren bei dir nämlich falsch herum. Unter Windows gehören die so, nur im Internet oder z.B. Linux sind die anders herum. ;-)


JüTho - Fr 12.06.09 14:33

Noch besser so:

C#-Quelltext
1:
2:
this.BackgroundImage = new Bitmap( Path.Combine(Application.StartupPath, 
  @"..\..\..\pics\2826_custom_1.bmp") );

Aber das ist nur eine allgemeine Verbesserung und hat mit den anderen hier genannten Problemen nichts zu tun.

Jürgen


skiller - Fr 12.06.09 16:54

ja danke aber bei jütho seiner idee kommt dann die diese fehlermeldung

Der Name "Path" ist im aktuellen Kontext nicht vorhanden!!!!

ja aber sonst funktioniert es !!

danke nochmal

mfg skiller


JüTho - Fr 12.06.09 17:07

user profile iconskiller hat folgendes geschrieben Zum zitierten Posting springen:
Der Name "Path" ist im aktuellen Kontext nicht vorhanden!!!!

Einfach mal nachschlagen, wo denn die Path-Klasse zu finden ist; welcher Namespace das ist, sollte in diesem Unterforum ziemlich leicht erraten werden können. Jürgen