내 도구에서는 패널을 사용하여 페이지를 변경합니다. 각 페이지에는 자체 패널이 있으며 페이지를 변경할 때 컨트롤이있는 패널을 보냅니다. 캔버스로 사용하는 패널에서 다음과 같은 페인트 이벤트가 발생합니다.특정 상황에서 페인팅 된 테두리 실행
private void panelContent_Paint(object sender, PaintEventArgs e)
{
e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
// Paints a border around the panel to match the treeview control
e.Graphics.DrawRectangle(Pens.CornflowerBlue,
e.ClipRectangle.Left,
e.ClipRectangle.Top,
e.ClipRectangle.Width - 1,
e.ClipRectangle.Height - 1);
e.Graphics.Flush();
base.OnPaint(e);
}
이 방법은 기본적으로 패널 주위에 멋진 경계선을 그려 더 잘 보입니다. 어떤 이유로이 패널 위에 다른 폼을 이동하면 테두리를 구성하는 선이 조금씩 움직이기 시작합니다. 때때로 작은 선들도 국경에서 그려 질 것입니다. 이 문제는 전체 패널을 다시 그리기 전에 몇 초 동안 만 발생합니다. 이런 일이 일어나지 않도록 내가 할 수있는 일이 있습니까?
방법 : 개인 공극 panelContent_Paint (오브젝트 송신자있는 PaintEventArgs E) { e.Graphics.CompositingQuality = CompositingQuality.HighQuality; e.Graphics.SmoothingMode = SmoothingMode.HighQuality; e.Graphics.DrawRectangle (Pens.CornflowerBlue, 가 panelContent.Width - 1 panelContent.Height - 1); e.Graphics.Flush(); base.OnPaint (e); } 감사합니다. – Icono123