Compartir a través de


Establecer el icono de un control en el Cuadro de herramientas

Los controles que cree siempre reciben un icono genérico para la ventana Cuadro de herramientas en Visual Studio. Sin embargo, al cambiar el icono, agrega una sensación de profesionalidad a su control y hace que destaque en el cuadro de herramientas. En este artículo se explica cómo establecer el icono del control.

Icono de mapa de bits

Los iconos de la ventana Cuadro de herramientas de Visual Studio deben cumplir ciertos estándares; de lo contrario, se omiten o se muestran incorrectamente.

  • Tamaño: los iconos de un control deben ser una imagen de mapa de bits de 16x16.
  • Tipo de archivo: el icono puede ser un mapa de bits (.bmp) o un archivo icono de Windows (.ico).
  • Transparencia: el color magenta (RGB: 255,0,255, Hexadecimal: 0xFF00FF) se representa de forma transparente.
  • Temas: Visual Studio tiene varios temas, pero cada tema se considera oscuro o claro. El icono debe diseñarse para el tema claro. Cuando Visual Studio usa un tema oscuro, los colores oscuros y claros del icono se invierten automáticamente.

Cómo asignar un icono

Los iconos se asignan al control con el atributo ToolboxBitmapAttribute. Para obtener más información sobre los atributos, consulte Atributos (C#) o Información general sobre los atributos (Visual Basic).

Sugerencia

Puede descargar un icono de ejemplo de GitHub.

El atributo se establece en la clase del control y tiene tres constructores diferentes:

  • ToolboxBitmapAttribute(Type)—Este constructor toma una sola referencia de tipo y, de ese tipo, intenta encontrar un recurso incrustado que se va a usar como icono.

    El FullName del tipo se usa para buscar un recurso insertado en el ensamblado de ese tipo, con el siguiente formato: {project-name}.{namespace-path}.{type-name}{.bmp|.ico}. Por ejemplo, si se hace referencia al tipo MyProject.MyNamespace.CompassRose, el atributo busca un recurso insertado denominado MyProject.MyNamespace.CompassRose.bmp o 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)—Este constructor toma dos parámetros. El primer parámetro es un tipo, y el segundo es el namespace y el nombre del recurso insertado en el ensamblado correspondiente a ese tipo.

    // 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)—Este constructor toma un único parámetro de cadena, la ruta de acceso absoluta al archivo de icono.

    // 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