2013-09-04 7 views
0

내가 직접 만든 UserControl이 있는데 PictureBox와 같은 디스플레이 용이지만 뭔가에 대한 데이터가 표시됩니다. 따라서 대상을 표시 할 대상이 없으면 표시 할 이미지가 없습니다. 이 경우 (항상 사용자 지정 컨트롤을 폼에 넣을 때), 표시 할 이미지가 없기 때문에 컨트롤을 볼 수 없습니다 (선택한 경우에만). PictureBox가 수행하는 것과 같은 작업을하고 싶습니다. 편집기에서 이미지를 찾지 못했을 때 선의 테두리가 "여기에 그림 상자가 있습니다"라고 말하면됩니다. 그러나 실행하면 프로그램과 이미지가없는 PictureBox는 테두리가 없습니다. Image. 내 맞춤 컨트롤에 대해이를 어떻게 감지 할 수 있습니까?편집기에서 내 사용자 정의 컨트롤이 있는지 여부를 감지하는 방법은 무엇입니까?

+0

'BorderStyle = BorderStyle.FixedSingle'을 설정하십시오. –

+0

WinForms? 그렇다면'DebugMode' 속성을보십시오. –

+0

이 'DebugMode'속성은 내가 검색하고있는 것입니다 ... 어떻게이 속성을 확인할 수 있습니까? –

답변

0

DesignMode 속성을 사용하여 컨트롤이 주위에 Rectangle을 그리는 디자인 모드에 있는지 확인할 수 있습니다. 그렇지 않으면 런타임에 사각형이 그려지지 않습니다.

public class CustomControl : UserControl 
{   
    protected override void OnPaint(PaintEventArgs e) 
    { 
     if (DesignMode){ 
      e.Graphics.DrawRectangle(Pens.Black, new Rectangle(0,0,ClientSize.Width-1, ClientSize.Height-1)); 
     } 
     base.OnPaint(e); 
    } 
} 
+0

고마워요! 그것은 작동합니다 :) –