2010-08-02 2 views
0

패널이 있고 AutoScrollMinSize를 설정했습니다. 또한 페인트를 강제로 적용하기 위해 패널에 Invalidate()를 호출합니다. 패널의 크기가 AutoScrollMinSize 값의 크기보다 작지 만 패널 위에 마우스를 올릴 때까지 스크롤 막대가 표시되지 않습니다.왜 마우스 오버 할 때까지 AutoScrollMinSize가 적용되지 않습니까?

이 문제의 원인은 무엇입니까? 또는 AutoScrollMinSize를 즉시 적용하려면 어떻게해야합니까?

+0

언제 'AutoScrollMinSize'를 (를) 설정합니까? – TheCloudlessSky

+0

이것은 환경 적이어야하며, Panel은 이런 식으로 행동하지 않습니다. –

답변

2

컨트롤이 즉시 다시 그려지지 않기 때문일 수 있습니다 (이 경우에는 의미가 있습니다).

컨트롤 대신 Refresh()을 호출 할 수 있습니다. Refresh() 컨트롤이 유효하지 않게합니다. WM_PAINT 메시지 을 바로으로 보냅니다. 반면에 Invalidate()은 기본적으로 "ok 컨트롤이 유효하지 않습니다 ... 다음으로 다시 그릴 것입니다"라고 말합니다.

편집 : Here's a link 자세한 내용은