2012-06-16 4 views
1

Windows 폼의 상단, 왼쪽, 오른쪽, 하단에 고정 된 패널이 있습니다. 그 패널 안에는 그림 상자가 있습니다. 그 그림 상자는 TrackBar 컨트롤 ('Dock'속성이 Top으로 설정된 동일한 폼의 다른 패널에 있음)을 통해 위아래로 크기가 조절되고 크기가 조정될 때마다 다시 중심에 맞춰집니다. 그림 상자가 너무 넓어 지거나 키가 너무 커서 패널에 포함될 수 없습니다. 어떻게 picturebox 내의 이미지를 '팬'할 수 있도록 패널에 가로 및 세로 스크롤바를 추가 할 수 있습니까? autoscroll 속성을 사용해 보았지만 아무 것도 할 수 없으며 MSDN 설명서가 다소 모호하고 일부 버그가 나열되어 있습니다. 스택에있는 이전 질문을 살펴 봤지만 상황에 맞는 것을 찾을 수 없습니다. 어떤 아이디어?안에 그림 상자가있는 스크롤 패널을 가지고있는 방법?

Visual Studio 2010과 VB.NET 프로젝트를 사용하고 있지만 VB.NET 또는 C# 권장 사항이 우수합니다.

미리 감사드립니다.

+0

가능한 중복 (http://stackoverflow.com/questions/3396973/scroll-picturebox-in-net) –

+0

나는 그 해결책을 시도했다. 그것은 나를 위해 작동하지 않았다. – user1208402

+1

왜 안 되니? 설명 해주십시오. –

답변

1

PictureBox 차원이 Panel의 클라이언트 공간보다 작은 경우 PictureBox를 중앙에 배치하고 PictureBox 크기를 Panel 클라이언트의 크기보다 크게 설정하기 때문에이 유형의 작업에는 단일 설정이 없습니다 공간을 사용하려면 위치를 0 점으로 지정하고 스크롤 막대에서 뷰를 처리하게하십시오.

당신의 PictureBox 크기를 조정할 때 이벤트를 호출 또한 패널의 크기 조정 이벤트를 처리 시도하고 [? .NET에서 스크롤의 PictureBox]의

Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll 
    PictureBox1.Size = New Size(64 * TrackBar1.Value, 64 * TrackBar1.Value) 
    Panel1.AutoScrollMinSize = PictureBox1.Size 
    Panel1_Resize(Panel1, EventArgs.Empty) 
End Sub 

Private Sub Panel1_Resize(sender As Object, e As EventArgs) Handles Panel1.Resize 
    If PictureBox1.Width > Panel1.ClientSize.Width Then 
    PictureBox1.Left = Panel1.AutoScrollPosition.X 
    Else 
    PictureBox1.Left = Panel1.ClientSize.Width/2 - PictureBox1.Width/2 
    End If 

    If PictureBox1.Height > Panel1.ClientSize.Height Then 
    PictureBox1.Top = Panel1.AutoScrollPosition.Y 
    Else 
    PictureBox1.Top = Panel1.ClientSize.Height/2 - PictureBox1.Height/2 
    End If 
End Sub 
+0

그게 내가 찾고 있던거야. 정확히 AutoScrollMinSize 및 AutoScrollPosition 속성을 사용하는 방법을 잘 모르겠습니다. 감사. – user1208402

관련 문제