2012-10-11 1 views
0

FormBorderStyle을 사용하여 사용자 지정 양식을 만들고 있습니다. 양식에서 폼 상단에 도킹 된 패널이 있습니다. 패널에는 오른쪽에 도킹 된 일부 단추가 있습니다.페인트에 양식을 작성한 후 자식 컨트롤이 다시 채색되지 않습니다.

폼의 크기를 조정할 때 폼의 테두리를 그릴 때 폼의 OnPaint를 재정의 했으므로 패널의 단추는 여전히 해당 위치에있었습니다. form.Invalidate()를 사용하려고했지만 아무 일도 일어나지 않습니다.

죄송하지만 사진을 게시 할 수 없습니다.

은 여기 양식

protected override void OnPaint(PaintEventArgs e) 
    { 
     base.OnPaint(e); 
     Rectangle borderRectangle = this.ClientRectangle; 
     borderRectangle.Inflate(-1, -1); 
     //ControlPaint.DrawBorder3D(e.Graphics, borderRectangle, Border3DStyle.RaisedOuter); 
     ControlPaint.DrawVisualStyleBorder(e.Graphics, borderRectangle); 
    } 

    protected override void OnResize(EventArgs e) 
    { 
     this.Invalidate(true); 
    } 
+0

을하여 문제를 해결했다. –

답변

0

의 코드는 마지막으로, 나는 OnClientSizeChanged으로하여 onResize 제거 : 양식 생성자에서 true로 ResizeRedraw 속성을 설정

protected override void OnClientSizeChanged(EventArgs e) 
{ 
    this.Invalidate(true); 
}