2010-12-06 7 views
0

나는이 같은 것을 가지고있다 : 이것은 컴파일하고 오류없이 실행되지만 어떤 이유로 아이콘이 표시되지SplitterPanel에 System.Drawing.Icon을 그리는 방법은 무엇입니까?

var systemIcon = SystemIcons.Information; 
verticalSplitPanel.SplitterDistance = systemIcon.Width; 

var g = verticalSplitPanel.Panel1.CreateGraphics(); 
g.DrawIcon(systemIcon, 0, 0); 

.

var systemIcon = SystemIcons.Information; 
verticalSplitPanel.SplitterDistance = systemIcon.Width; 

var g = verticalSplitPanel.Panel1.CreateGraphics(); 
g.DrawImage(systemIcon.ToBitmap(), 0, 0); 

다시 컴파일하고 오류없이 실행되지만 아이콘을 표시하지 않습니다

나는이 시도.

어떻게이 아이콘을 표시 할 수 있습니까?

답변

1

코드는 패널 표면 위에 아이콘을 칠할 수 있지만 패널이 다시 칠하기로 결정할 때마다 지워집니다. Graphics 오브젝트를 verticalSplitPanel.Panel1.CreateGraphics()에서 호출하는 대신, 패널의 Paint 이벤트를 처리하고 해당 이벤트 인수에 제공된 Graphics 오브젝트를 사용해야합니다.

이 시도 :

verticalSplitPanel.Panel1.Paint += (s, eargs) => 
    { 
     var icon = SystemIcons.Information; 
     eargs.Graphics.DrawIcon(icon, 0, 0); 
    }; 
관련 문제