Toolboxicon für Control festlegen

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von nafets.

    Toolboxicon für Control festlegen

    Hallo,
    Ich versuche gerade für ein paar meiner Controls eigene Toolboxicons festzulegen. Jedoch funktioniert das Ganze irgendwie nicht.
    Zum verküpfen habe ich folgendes ausprobiert: <ToolboxBitmap("MetroPieChart.Icon.bmp")>, sowie <ToolboxBitmap(typeof(MetroPieChart), "MetroPieChart.Icon.bmp")>.
    Beides zeigt keine Wirkung.
    Zu erwähnen ist ebenfalls, dass die Bilddatei einfach im Projekt eingebunden ist, zwar nicht in den Resourcen, damit habe ich es aber auch schon probiert:


    Außerdem ist die Bilddatei, 16x16 groß sowie, soweit ich weiß, als 16Color-BMP gespeichert.
    Dennoch, habe ich sie zur Überprüfung als Dateianhang begelegt:
    MetroPieChart.Icon.bmp

    EDIT://

    guuuuuuuuut... Peinlich. Habe es doch geschafft.
    Ich weiß nicht wieso ich diesen Punkt überlesen hatte, aber es funktioniert wie folgt:
    <ToolboxBitmap(GetType(MetroPieChart), "MetroPieChart.bmp")>, außerdem die .bmp genauso nennen wie das Control.
    Anschließend, die Build-Action auf Embedded Resource setzen.

    Folglich hat sich dieser Thread nicht wirklich ausgezahlt ^^


    Wüsstet ihr wo der Fehler liegen könnte, denn es wird immer das standard Control Icon angezeigt.

    Danke im Vorraus,
    lg. Gather_
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Gather“ ()

    @Gather Laut MSDN will er den ganzen Pfad im Quelltext stehen haben. Dass diese Bitmap zum Projekt gehören muss, steht da nix.
    / ungetestet,
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja, aber dadurch, dass ich die kompilierte Library dann ja weitergeben will, wäre dies Vorteilhaft, oder irre ich mich da?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Gather schrieb:

    Vorteilhaft
    aber von Bill offensichtlich so nicht vorgesehen. Das ist echt unklar.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ToolBox-Icons sind so ne etwas komische Sache. Erstmal vorweg: Man kriegt generell überhaupt keine Fehlermeldungen und das Farbsystem scheint indiziert zu sein, außerdem ist meines Wissens nach Transparenz nur auf Umwegen möglich zu implementieren. Auch wichtig zu beachten ist, dass ToolBoxBitmaps nur bei referenzierten Libraries funktionieren, bei Projekten in derselben Projektmappe eigentlich nicht.
    Die Vorgehensweise, welche bei mir funktioniert ist, erstmal mit dem ToolBoxBitmap-Attribut auf den Typ der eigenen Klasse zu verweisen (ControlName -> [ToolboxBitmap(typeof(ControlName))]) und dann das Icon in Form einer Bitmap (.bmp) als Embedded Resource (keine normale Ressource!) in den gleichen Namespace wie das Control einzukompilieren. Zur dem Zeitpunkt, als ich diese Methode durch herumexperimentieren gefunden hatte, hatte keine der in Artikeln und StackOverflow-Threads gefundenen Methoden funktioniert - ich weiß nicht, ob man mittlerweile Beschreibungen zu funktionierenden Methoden findet.
    Natürlich darfst du auch [ToolboxItem(true)] nicht vergessen ;)
    Wenn du dir anschauen möchtest, wie das dann konkret aussehen kann, kannst du ja hier vorbeischauen, da ist der Source zu meiner Variante (als Teil meiner Control-Library).

    Grüße
    Stefan
    Wie gesagt, ich habe es dann eh schon geschafft (siehe 1. Post) haha.
    Transparenz ging interesanterweise automatisch. Ich hatte zuerst die Transparente PNG, hab diese dann als BMP gespeicher, logischerweise wurde Transparent dann weiß, und Visual Studio erkennt das irgendwie als Transparent.
    Das weiß ich, da es keine weiße Umrandung gibt, selbst wenn ich das VS farbschema verändere.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!