다음을 통해 공유


도구 상자에서 컨트롤의 아이콘 설정하기(Windows Forms .NET)

사용자가 만든 컨트롤은 Visual Studio의 도구 상자 창을 위한 일반 아이콘을 항상 받습니다. 그러나 아이콘을 변경하면 컨트롤은 전문성의 느낌이 더해지고 도구 상자에서 눈에 띄게 됩니다. 이 문서에서는 컨트롤의 아이콘을 설정하는 방법을 설명합니다.

비트맵 아이콘

Visual Studio의 도구 상자 창을 위한 아이콘은 특정 표준을 준수해야 하고, 그렇지 않으면 무시되거나 잘못 표시됩니다.

  • 크기: 컨트롤의 아이콘은 16x16 비트맵 이미지여야 합니다.
  • 파일 형식: 아이콘은 비트맵(.bmp) 또는 Windows 아이콘(.ico) 파일일 수 있습니다.
  • 투명도: 자홍색(RGB: 255,0,25516진수: 0xFF00FF)은 투명하게 렌더링됩니다.
  • 테마: Visual Studio에는 여러 테마가 있지만 각 테마는 어둡거나 밝은 테마 중 하나로 간주됩니다. 사용자의 아이콘은 밝은 테마에 맞춰 디자인되어야 합니다. Visual Studio에서 어두운 테마를 사용하는 경우, 해당 아이콘의 어둡고 밝은 색상은 자동으로 반전됩니다.

아이콘을 할당하는 방법

아이콘은 ToolboxBitmapAttribute 특성을 사용하여 컨트롤에 할당됩니다. 특성에 대한 자세한 내용은 특성(C#) 또는 특성 개요(Visual Basic)를 참조하세요.

GitHub에서 샘플 아이콘을 다운로드할 수 있습니다.

이 특성은 컨트롤의 클래스에서 설정되며 다음의 세 가지 생성자가 있습니다.

  • ToolboxBitmapAttribute(Type)—이 생성자는 단일 형식 참조를 사용하여 해당 형식에서 아이콘으로 사용할 포함 리소스를 찾으려고 합니다.

    형식의 FullName은 다음과 같은 {project-name}.{namespace-path}.{type-name}{.bmp|.ico} 형식을 사용하여 해당 형식의 어셈블리에서 포함된 리소스를 조회하는 데 사용됩니다. 예를 들어 MyProject.MyNamespace.CompassRose 형식을 참조하는 경우 특성은 MyProject.MyNamespace.CompassRose.bmp 또는 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)—이 생성자는 두 개의 매개 변수를 사용합니다. 첫 번째 매개 변수는 형식이고, 두 번째 매개 변수는 해당 형식의 어셈블리에 있는 포함된 리소스의 네임스페이스 및 이름입니다.

    // 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)— 이 생성자는 아이콘 파일의 절대 경로인 단일 문자열 매개 변수를 사용합니다.

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