Entwickler-Ecke

WinForms - Usercontrol fehlermeldung


vreden123 - Di 29.03.11 22:18
Titel: Usercontrol fehlermeldung
Hallo,

ich habe ein Usercontrol erstellt in dem nur buttons angeklickt werden können, die Buttons waren früher in der MainForm. Allerdings habe ich dies wegen der Übersicht in ein neues Usercontrol gesetzt.
Wenn ich jetzt das Usercontrol in die MainForm ziehe kommt folgender fehler:

[url=http://www.directupload.net]user defined image[/URL]

In folgendem Code soll der fehler sein:


C#-Quelltext
1:
Image img_blue_play = Image.FromFile("img/button_blue_play.png");                    


Ich muss wohl sagen das das Usercontrol im ordner Formen/Info ist, wo die MainForm nicht ist. Aber wenn ich das programm starte ist alles ja eh in eine Datei oder?


vreden123 - Di 29.03.11 22:38

Wenn ich das Bild in Properties.Resources lade und dann nicht aus .FromFile lade sondern direkt von Properties.Resources.bild; dann gehts aber ich möchte die Bilder lieber direkt laden.


jaenicke - Mi 30.03.11 02:02

user profile iconvreden123 hat folgendes geschrieben Zum zitierten Posting springen:

C#-Quelltext
1:
Image img_blue_play = Image.FromFile("img/button_blue_play.png");                    
Da fehlt die Pfadangabe, das kann nicht stabil funktionieren. Denn ob zufällig das Arbeitsverzeichnis immer das für dich "richtige" ist, kannst du ja normalerweise nicht wissen.

Den Pfad der eigenen Exe solltest du so bekommen:

C#-Quelltext
1:
2:
System.IO.Path.GetDirectoryName( 
  System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);


Th69 - Mi 30.03.11 09:30

Hallo,

oder aber die Application.StartupPath-Eigenschaft verwenden.

@vreden124, soll der Anwender die Bilder austauschen dürfen, oder warum möchtest du keine Ressourcen verwenden?


vreden123 - Mi 30.03.11 14:06

@Th69

Austauschen soll der Benutzer die nicht.
Die .exe Datei soll nicht so groß werden, deswegen die Bilder.
Das Programm kann man nacher installieren und im Installationspfad gibt es dann einen Ordner img.

Nur in der MainForm brauchte ich nicht den kommpletten Pfad angeben. Es reichte wenn ich sagte das das im Ordner img ist.


jaenicke - Mi 30.03.11 15:09

user profile iconvreden123 hat folgendes geschrieben Zum zitierten Posting springen:
Nur in der MainForm brauchte ich nicht den kommpletten Pfad angeben. Es reichte wenn ich sagte das das im Ordner img ist.
Reiner Zufall... weil zufällig das Arbeitsverzeichnis genau das Verzeichnis der Exe war. Öffne einen Dateidialog (Laden, Speichern) und schon ist das nicht mehr so...