Benutzer mit den meisten Antworten
ToolboxBitmapAttribute.GetImageFromResource-Methode

Frage
-
Hallo zusammn,
Ich habe es nun geschaft ein eigenes Control (Button) zu erstellen. Mit allen was ich wollte.
Jetzt fehlt mir noch eins.
Das eigen erstellte Control soll ja später in der ToolBox auch ein eigenes Icon haben.
Nun habe ich ein Bild im Format 16x16 als bmp erstellt. so wie es auch in der Beschreibung steht.
füge ich nun vor de Klasse folgendes ein:
<ToolboxBitmap("C:\test.bmp")>
funktioniert es einwandfrei.Ich möchte das BMP aber nicht so einfach auf der Platte liegen haben, sondern ich würde es gerne auss den Ressourcen holen.
Und genau da scheitert mein vorhaben. Ich habe mir die Klasse bei msdn und auch Beispiel bei Gallileo angesehen, und schaffe trotzdem nicht.
Weis jemand wie der Konstruktor aufgebaut sein muss ?Das funktioniert leider nicht:
<System.Drawing.ToolboxBitmap(GetType(System.Windows.Forms.Button), My.Resources.BS_CB_Rund16x16)>
vielen dank wie immer
Bernd
- Bearbeitet Robert BreitenhoferModerator Dienstag, 6. April 2010 08:56 Formatierung
Antworten
-
Hallo Bernd,
das ToolboxBitmap Attribut erwartet hier eine eingebettete Ressource. Die Ressourcen, die Du über den Designer der Projekt-Eigenschaften erstellst, sind zwar auch eingebettet, aber wieder in einem speziellen Container Format (RESX). Ferner wird ein Verweis auf eine Klasse innerhalb Deines Projekts/Assembly erwartet, da dies ausschlaggebend dafür ist, wo das Bitmap gesucht wird:
1. Füge das Bitmap über Projekt => Bestehenden Eintrag hinzufügen in Deine Projektmappe ein. Ggf. direkt in den Ordner "Resources".
2. Wähle im Eigenschaftenfenster dieses hinzugefügten Bitmap unter "Build Action" (Erstellungsaktion) [Embedded Resource] (Eingebettete Ressource) aus.
3. Passe das ToolboxBitmap Attribut an:
<ToolboxBitmap(GetType(MyCustomButton), "CustomButton.bmp")> _ Public Class MyCustomButton ' ... End Class
Wenn Du dem Bitmap den gleichen Namen gibst, wie Deine Klasse/Control, dann kannst Du auch auf die Angabe des Namens verzichten.
Es kann sehr wahrscheinlich sein, dass Visual Studio in seiner Toolbox immer noch das Standard Icon anzeigt und nicht Dein eigenes. Warum das so ist und sein muss, habe ich bisher noch nicht raus gefunden. Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.
Thorsten Dörfler
Microsoft MVP Visual Basic- Als Antwort markiert Bernd Schlepütz Montag, 5. April 2010 11:31
Alle Antworten
-
Hallo Bernd,
das ToolboxBitmap Attribut erwartet hier eine eingebettete Ressource. Die Ressourcen, die Du über den Designer der Projekt-Eigenschaften erstellst, sind zwar auch eingebettet, aber wieder in einem speziellen Container Format (RESX). Ferner wird ein Verweis auf eine Klasse innerhalb Deines Projekts/Assembly erwartet, da dies ausschlaggebend dafür ist, wo das Bitmap gesucht wird:
1. Füge das Bitmap über Projekt => Bestehenden Eintrag hinzufügen in Deine Projektmappe ein. Ggf. direkt in den Ordner "Resources".
2. Wähle im Eigenschaftenfenster dieses hinzugefügten Bitmap unter "Build Action" (Erstellungsaktion) [Embedded Resource] (Eingebettete Ressource) aus.
3. Passe das ToolboxBitmap Attribut an:
<ToolboxBitmap(GetType(MyCustomButton), "CustomButton.bmp")> _ Public Class MyCustomButton ' ... End Class
Wenn Du dem Bitmap den gleichen Namen gibst, wie Deine Klasse/Control, dann kannst Du auch auf die Angabe des Namens verzichten.
Es kann sehr wahrscheinlich sein, dass Visual Studio in seiner Toolbox immer noch das Standard Icon anzeigt und nicht Dein eigenes. Warum das so ist und sein muss, habe ich bisher noch nicht raus gefunden. Bindet man das Assembly in einer anderen Projektmappe ein, wird erwartungsgemäß das eigene Icon angezeigt.
Thorsten Dörfler
Microsoft MVP Visual Basic- Als Antwort markiert Bernd Schlepütz Montag, 5. April 2010 11:31