Usercontrol Toolbox Bild

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

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Usercontrol Toolbox Bild

    yo Leute,

    hab mich mal an ein UserControl gewagt und war überrascht wie leicht das eigentlich funktioniert :)
    Jedoch hab ich folgendes Problem:
    Wie kann ich dem Usercontrol ein anderes Toolbox-Bild übergeben?

    Habe zurzeit folgenden Code:

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.ComponentModel
    3. <ToolboxItem(True)>
    4. <ToolboxBitmap(GetType(MonthControl), "calendar_month.png")>
    5. Public Class MonthControl
    6. ' Code
    7. End Class


    calendar_month.png ist in My.Ressources hinterlegt.
    Jedoch bekomme ich nur so ein Standardicon.

    Es gäbe auch noch die Möglichkeit einen lokalen Pfad anzugeben, funktioniert das aber noch wenn das auf einem anderen PC ausgeführt wird wo dieser Pfad nicht vorhanden ist?

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    ToolboxItem weiß nix von

    fichz schrieb:

    My.Ressources
    , das Icon muss auf Platte liegen. Gugst Du außerdem MSDN.
    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!
    Hab es eben probiert. Nehme ich einen lokalen Pfad funktioniert es nur auf meinem PC. Kopier ich die dll dann auf einen anderen und zieh es in die Toolbox ist wieder nur das Standardlogo vorhanden.

    lg

    EDIT: Hatte was falsch gelesen... Nicht mit MyResource sondern einfach ein bmp dem Projekt hinzufügen
    Es funktioniert auf folgende Weise:
    - Rechtsklick auf Projekt -> Hinzufügen -> Vorhandenes Element. Hier das bmp suchen (hab es gleich benannt wie die Klasse selbst -> MonthControl.bmp)
    - Rechtsklick auf bmp und Eigenschaften -> Buildvorgang: Eingebettete Ressource
    - Zeile über der Klasse:

    VB.NET-Quellcode

    1. <ToolboxItem(True)>
    2. <ToolboxBitmap(GetType(MonthControl), "MonthControl.bmp")>
    3. <DefaultEvent("DateChanged")>
    4. Public Class MonthControl
    5. End Class


    progware.org/Blog/post/Display…for-a-Custom-Control.aspx
    bytes.com/topic/visual-basic-n…-adding-icon-user-control


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „fichz“ ()

    Hm ich denke nicht.
    Wichtig ist auch, dass man das Projekt neu erstellt und anschließend die .dll aus dem Release in die Toolbox ziehen.

    Sonst müsstest du deinen Code zeigen oder eventuell die Projektmappe hochladen (reicht ja ohne eigentlich Klassencode).

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    @fichz @VB1963
    Ich hab noch mal die MSDN gelesen, es kann sein, dass das UserControl als separate DLL vorliegen muss.
    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!
    Ich bin einfach wie folgt vorgegangen:
    (Visual Studio 2013 Ult)
    Neues Projekt erstellt. FW 2.0 -> Windows Forms Steuerelementbibliothek
    Dann halt wie oben beschrieben das bmp dem Projekt hinzugefügt.
    Wie man es gleich sieht, dass es nicht funktioniert, wenn eine FileNotFoundException nach dem Start kommt welche aber abgefangen wird und das Tool trotzdem startet (dieses Eigenschaftstesttool).

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Wichtig ist auch, dass man das Projekt neu erstellt und anschließend die .dll aus dem Release in die Toolbox ziehen.
    Alles klar, jetzt geht's...
    Ich hatte es nicht als Extra-.dll erstellt, sondern habe in einem WinForms-Projekt ein UserControl angelegt.
    Und da wird es nur als ein blaues Zahnrädchen (Standardbilchen) in der Toolbox angezeigt ?...
    Ich glaube ja, wenn man solch ein UserControl in einem normalen Projekt erstellt, es automatisch in der Toolbox vorhanden ist oder? (Also nach dem Erstellen)
    Warum es da allerdings nur mit Zahnrad angezeigt wird weiß ich leider auch nicht :/

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten