2013-06-01 4 views
1

ErrorProvider 내에서 사용하도록 SystemIcon의 크기를 조정하려고합니다.ErrorProvider에 대한 시스템 아이콘 크기 조정

Dim WarnProvider As New ErrorProvider 
    WarnProvider.BlinkStyle = ErrorBlinkStyle.NeverBlink 
    WarnProvider.Icon = SystemIcons.Information.Clone() 
    WarnProvider.Icon.Size = New Size(16,16) 

그러나 SystemIcons의 크기는 읽기 전용 속성으로 설정되어 있습니다.

지난 1 시간 동안 장난을 치고이 작업을 수행하기위한 좋은 방법을 찾지 못했습니다.

누군가 도움을 줄 수 있습니까?

감사

답변

0

내가 같은 일을 찾고 다른 곳에서 답을 발견, 그래서 여기 http://www.codeproject.com/Questions/242780/error-provider-problem

WarnProvider.Icon = new Icon (SystemIcons.Warning, 16, 16); 

또는

을 게시합니다되었다
WarnProvider.Icon = new Icon (WarnProvider.Icon, 16, 16); 
+3

이것은 나를 위해 작동하지 않습니다. 아이콘은 여전히 ​​32x32로 표시됩니다. – Miral

2

나는 찾고 있었다 이것을하는 방법은이 포스트를 가로 질러왔다. 문제를 해결하기 위해 내가 한 일은 다음과 같습니다.

아이콘 크기를 조정하는 전역 정적 메서드를 만들었습니다.

public static class Global 
{ 
    public static Icon ResizeIcon(Icon icon, Size size) 
    { 
     Bitmap bitmap = new Bitmap(size.Width,size.Height); 
     using(Graphics g = Graphics.FromImage(bitmap)) 
     { 
      g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
      g.DrawImage(icon.ToBitmap(), new Rectangle(Point.Empty,size)); 
     } 
     return Icon.FromHandle(bitmap.GetHicon()); 
    } 
} 

그런 다음 InitializeComponent()을 호출 한 후 양식의 생성자에 아이콘을 적용했습니다.

public SpecificationsDialog(int pid) 
{ 
    InitializeComponent(); 
    warningProvider1.Icon = Global.ResizeIcon(SystemIcons.Warning,SystemInformation.SmallIconSize); 
}