폼에 간단한 패널이 있고 AutoScrollMinSize 및 AutoScroll을 사용하여 내 패널에 일부 스크롤바를 가져옵니다. 모두 정상입니다.Scroll 이벤트와 Paint 이벤트 사이의 어긋남과 어쩌면 뭔가있는 것
또한 전체 패널 영역을 무효화하는 데 사용하는 Scroll 이벤트가 있는데, 이는 왼쪽/오른쪽, 위/아래로 스크롤 할 때 필요한 비트 만 무효화하는 것처럼 보입니다. 이 외에도 나는 패널과 같은 크기의 BufferedGraphics를 사용하고 있는데, 스크롤 바가 존재하지 않는 것처럼 전체 패널을 그릴 수 있기를 원하는 경우 .Render (e.Graphics)를 사용합니다. .
이제 내가 가지고있는 문제는 화면을 스크롤하고 내용을 칠할 때 시각적 인 문제가있는 것처럼 보입니다. 이전에 익숙하지 않은 여분의 그리기/설정 단계가 있기 때문입니다 Scroll 이벤트가 불려지거나 호출되는 Paint 이벤트와의 사이에 Scroll 이벤트가 호출됩니다.
페인트 방법 내에 무효화 패널이있는 경우 문제는 보이지 않지만이 문제를 숨기는 여러 번 호출되는 페인트 이벤트와 관련이 있습니다.
당신이 스크롤 할 때, 두포 밑에있는 어떤 것이 이미 존재하는 큰 사각형 blit 내용을 이동 시키면 채워질 필요가있는 영역의 사각형이 무효화됩니다.
이 경우,이 단계를 억제하거나 지연을 없애기 위해 누락 된 일부 설정을 억제하므로 어쨌든이 주변에 있습니까?
추신 : 나는 또한 빈 스텁 인 OnPaintBackground 메서드를 재정의합니다.
두 개의 버퍼링 구성표를 회전하고 스크롤 위치에 관계없이 전체 패널을 그리려는 시도는 그림을 느리게 만드는 매우 좋은 방법입니다. 그냥 하지마. –