2017-01-19 2 views
0

In Ordnung, also suche ich nach einer mehr oder weniger schnellen Lösung für ein Problem ... Auf einem Programm, das ich gebaut habe, wird das Bild auf einer Schaltfläche geändert wenn ein KeyDown-Ereignis auftritt. Anfangs habe ich das Bild geändert, indem ich sagte Das Problem ist, dass, wenn ich das Programm auf einem USB-Stick, der neue Computer sucht nach der Datei auf dem gleichen Weg und kann es nicht finden, einen Fehler zu erstellen. Die einzigen Bilder, die geladen werden, sind diejenigen, die im Designerbereich verwendet werden, mit denen die Schaltflächen beginnen. Aus diesem Grund habe ich einen ganzen Haufen zusätzlicher Knöpfe gemacht, ihnen meine benötigten Bilder zugewiesen, sie alle unter Button3.Hide(); versteckt. Ich habe alle button1.Image = Image.FromFile(@"...") in Button1.Image = Button2.Image geändert und dann auf den Stick, um es erneut zu versuchen. Wie Sie vielleicht erraten haben, hat es nicht funktioniert. Irgendwelche Ratschläge, wie man die Bilder auf allen Computern funktioniert?So zeigen Sie ein Bild in Windows Forms von einem anderen Gerät an

+0

Warum verstecken Sie den Pfad von uns in Ihrer Frage? Es ist kein Geheimnis. Wenn Sie etwas wie 'Image.FromFile (@" x: \ funky \ folder \ images \ incoming stuff \ Mittwoch ")' machen und dieser Pfad nicht auf Ihrem Gerät existiert, dann ist das das Problem. Bilder sollten entweder eine WinForms-Ressource sein; oder im Verhältnis zu Ihrer App bereitgestellt werden. Stellen Sie sicher, dass Ihre Pfade immer relativ und nicht absolut sind – MickyD

Antwort

1

Sie können die Bilder als Teil Ihrer ausführbaren Datei bündeln von ihnen eine Eingebettete Ressource machen.

  1. Klicken Sie auf Projekt -> Eigenschaften.
  2. Einer der Links, wählen Sie "Ressourcen".
  3. Klicken Sie nun oben auf den DropDown-Pfeil neben "Ressource hinzufügen" und wählen Sie "Vorhandene Datei hinzufügen".
  4. Navigieren Sie zu der ersten Bilddatei und Doppelklicken Sie darauf.
  5. Ändern Sie im Eigenschaftenbereich für das Bild (unten rechts standardmäßig) die "Persistence" in "Embedded in.resx".

Wiederholen Sie die Schritte 3 bis 5 für die zweite Bilddatei.

Jetzt gehen Sie zurück zum Design-Modus für Ihr Formular und wählen Sie Ihren Button. Klicken Sie auf die drei Punkte "..." neben der Eigenschaft Image und Sie sollten nun die beiden Bilder in der unteren Hälfte unter dem Bereich "Projektressourcendatei:" sehen. Wählen Sie das Standardbild von dort aus.

Wenn das KeyDown() Ereignis eintritt, können Sie folgenden Code verwenden das Bild zu ändern:

button1.Image = Properties.Resources.sv_privilege; 

wo „sv_privilege“ ist der Name der Ressource, die Sie früher eingebettet und wechseln wollen.

Verwandte Themen