2008-11-04 5 views

답변

13

당신은 구성 요소의 VerticalScroll 및 HorizontalScroll 속성을 사용할 수 있어야합니다 : 또는 당신은 모든 패널 아이들을 반복하고 자신의 위치를 ​​조정할 수

c.HorizontalScroll.Value += 100; 
c.VerticalScroll.Value = c.VerticalScroll.Maximum; 
+0

AutoScroll = true 인 경우에만 작동하지만 HorizontalScroll/VerticalScroll을 숨길 수는 없습니다. Scroll.Visible = false로 설정하면 스크롤을 숨기지 않습니다. – Jonas

+0

OP와 같이 스크롤바를 숨기려는 사람에게는 누구나 참고하십시오. 시도하지 마십시오. –

+4

내가 발견 한 이상한 버그로 인해,'var v = ScrollingPanel.VerticalScroll; v.Value = v.Value = Math.Min (v.Maximum, v.Value + v.LargeChange); '또는 스크롤바는 실제로 패널이 움직일 때 움직이지 않을 것입니다. 어떤 이유로 스크롤 막대를 그리기 직전에 값이 변경되지만 두 번째 값을 설정하면 값이 업데이트됩니다. – Patrick

-3

이 작업을 수행하기 위해 아마도 패널의 속성있다 .

예 : 마찬가지로 그들이 위치 그들을 패널 밖으로 이동하기 위해 패널 크기보다 더 큰 가치를 가질 수

int xoffset = 10; 

foreach(Control c in panel1.Controls) 
    c.Location.X += xoffset; 

컨트롤이 그들을 패널 밖으로 이동 부정적인 위치로 이동할 수 있습니다 : 모든 컨트롤을 10 픽셀로 이동합니다 .

+0

위치를 -ve 값으로 설정할 수 있다고 생각하지 않습니다. – pmcilreavy

+0

fallenidol : 그건 그냥 잘못입니다! 직접 해보십시오. 컨트롤의 .Left 속성을 -10으로 설정하면 컨테이너의 경계 왼쪽으로 이동합니다. –

+0

나는 아직도이 대답을위한 downwotes를 참조하십시오. 누군가가하는 경우, 이유에 대한 코멘트를 추가해주세요. 저는 매우 호기심이 많습니다. –

10

Autoscroll 속성을 사용하지 않으려는 경우, 오래 전에 사용했던 방법이 있습니다.

  • 패널을 패널 내부에 넣습니다. 스크롤 막대 컨트롤을 부모 패널에 놓은 다음 스크롤 막대를 사용하여 패널 내부의 Top 속성을 변경합니다.

간단하고 아름답게 작동합니다.

+0

이 코드는 작성한 코드가 없기 때문에 내가 본 모든 다른 방법보다 효과적입니다. – MrWuf

+0

왜 스크롤 막대 컨트롤을 사용합니까? 상위 패널을 자동 스크롤로 설정하십시오. – Traubenfuchs

+0

Cyril의 훌륭한 제안은 하위 패널의 높이가 모든 하위 컨트롤 (전체 패널을 표시 할만큼 충분히 큰 부모 폼)을 볼만큼 충분히 커야한다는 것입니다. – AlainD

관련 문제