Freigeben über


Festlegen des Symbols eines Steuerelements in der Toolbox (Windows Forms .NET)

Von Ihnen erstellte Steuerelemente erhalten immer ein generisches Symbol für das Toolboxfenster in Visual Studio. Wenn Sie jedoch das Symbol Ihres Steuerelements ändern, erscheint es professioneller und sticht in der Toolbox heraus. In diesem Artikel erfahren Sie, wie Sie das Symbol Ihres Steuerelements festlegen.

Bitmapsymbol

Symbole für das Toolboxfenster in Visual Studio müssen bestimmten Standards entsprechen. Andernfalls werden sie ignoriert oder falsch angezeigt.

  • Größe: Steuerelementsymbole müssen ein Bitmapbild der Größe 16 × 16 sein.
  • Dateityp: Das Symbol kann entweder eine Bitmapdatei (.bmp) oder eine Windows-Symboldatei (.ico) sein.
  • Transparenz: Die Farbe Magenta (RGB: 255,0,255, Hex: 0xFF00FF) wird transparent gerendert.
  • Designs: Visual Studio verfügt über mehrere Designs, die aber jeweils als entweder dunkel oder hell betrachtet werden. Ihr Symbol sollte für das helle Design entworfen werden. Wenn Visual Studio ein dunkles Design verwendet, werden die dunklen und hellen Farben im Symbol automatisch umgekehrt.

Zuweisen eines Symbols

Symbole werden Steuerelementen mit dem ToolboxBitmapAttribute-Attribut zugewiesen. Weitere Informationen zu Attributen finden Sie unter Attribute (C#) oder Attributübersicht (Visual Basic).

Tipp

Sie können ein Beispielsymbol von GitHub herunterladen.

Das Attribut wird in der Klasse des Steuerelements festgelegt und verfügt über drei verschiedene Konstruktoren:

  • ToolboxBitmapAttribute(Type): Dieser Konstruktor verwendet einen einzelnen Typverweis und versucht in diesem Typ eine eingebettete Ressource zu finden, die als Symbol verwendet werden soll.

    FullName des Typs wird verwendet, um eine eingebettete Ressource in der Assembly dieses Typs zu suchen. Dabei wird das folgende Format verwendet: {project-name}.{namespace-path}.{type-name}{.bmp|.ico}. Wenn beispielsweise auf den Typ MyProject.MyNamespace.CompassRose verwiesen wird, sucht das Attribut nach einer eingebetteten Ressource namens MyProject.MyNamespace.CompassRose.bmp oder MyProject.MyNamespace.CompassRose.ico.

    // Looks for a CompassRose.bmp or CompassRose.ico embedded resource in the
    // same namespace as the CompassRose type.
    [ToolboxBitmap(typeof(CompassRose))]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Looks for a CompassRose.bmp or CompassRose.ico embedded resource in the
    ' same namespace as the CompassRose type.
    <ToolboxBitmap(GetType(CompassRose))>
    Public Class CompassRose
        ' Code for the control
    End Class
    
  • ToolboxBitmapAttribute(Type, String): Dieser Konstruktor akzeptiert zwei Parameter. Der erste Parameter ist ein Typ, und der zweite ist der Namespace und der Name der eingebetteten Ressource in der Assembly dieses Typs.

    // Loads the icon from the WinFormsApp1.Resources.CompassRose.bmp resource
    // in the assembly containing the type CompassRose
    [ToolboxBitmap(typeof(CompassRose), "WinFormsApp1.Resources.CompassRose.bmp")]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Loads the icon from the WinFormsApp1.Resources.CompassRose.bmp resource
    ' in the assembly containing the type CompassRose
    <ToolboxBitmap(GetType(CompassRose), "WinFormsApp1.Resources.CompassRose.bmp")>
    Public Class CompassRose
        ' Code for the control
    End Class
    
  • ToolboxBitmapAttribute(String): Dieser Konstruktor akzeptiert einen einzelnen Zeichenfolgenparameter mit dem absoluten Pfad zur Symboldatei.

    // Loads the icon from a file on disk
    [ToolboxBitmap(@"C:\Files\Resources\MyIcon.bmp")]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Loads the icon from a file on disk
    <ToolboxBitmap("C:\Files\Resources\MyIcon.bmp")>
    Public Class CompassRose
        ' Code for the control
    End Class