C# .Net의 Windows Forms 응용 프로그램에 대한 내 자신의 사용자 지정 컨트롤을 작성하려고합니다. 현재 페인트 이벤트를 사용하여 일부 직사각형 및 기타 그래픽 요소를 페인트합니다. 이제 앱 크기를 바탕 화면 크기에 맞게 조정하면 모든 요소가 다시 그려지지만 필요한 이전 동작은 배경에 표시됩니다.C# - 크기를 조정할 때 화면 지우기
Pen penDefaultBorder = new Pen(Color.Wheat, 1);
int margin = 5;
private void CustomControl_Paint(object sender, PaintEventArgs e) {
CustomControl calendar = (CustomControl)sender;
Graphics graphics = e.Graphics;
graphics.Clear(Color.WhiteSmoke);
graphics.DrawRectangle(penDefaultBorder, margin, margin, calendar.Width - margin * 2, calendar.Height - margin * 2);
//...
}
어느 쪽도 아니 graphics.Clear을,도 아니다 graphics.FillRectangle (...)를 추가하면면에서 기존의 사각형을 숨길 수 :
는 여기에 내가 지금 뭘하는지입니다.
아이디어가 있으십니까? 다들 감사 해요.
이렇게하면됩니다. 약간의 샷건 접근법이지만 작동 할 것입니다. 나는 여전히 변경이 필요할 때만 버퍼를 렌더링하고 OnPaint에서 요청한 영역을 복사하는 것을 선호합니다. – overslacked
흠 - 이것은 쉽습니다 ;-) 도움을 주셔서 감사합니다. 이제 크기 조정 작업이 예상대로 작동합니다. – dhh