1

Windowsフォームの上下左右に固定されたパネルがあります。そのパネルの中にはピクチャーボックスがあります。そのピクチャーボックスは、TrackBarコントロール(「Dock」プロパティがTopに設定された同じフォームの別のパネルにあります)を介して上下にサイズ変更され、サイズ変更されるたびに中央に再配置されます。ピクチャーボックスは、パネルに収めるには幅が広すぎたり高すぎたりすることがあります。パネルに水平および垂直スクロールバーを追加して、画像ボックス内の画像を「パン」できるようにするにはどうすればよいですか?autoscrollプロパティを使用してみましたが、何も実行できないようです。MSDNのドキュメントはややあいまいで、いくつかのバグがリストされています。ここでスタック上の前の質問を調べましたが、私の状況に適したものが見つかりません。何か案は?

Visual Studio 2010とVB.NETプロジェクトを使用していますが、VB.NETまたはC#の推奨事項が最適です。

前もって感謝します!

4

1 に答える 1

2

PictureBoxの寸法がPanelのクライアントスペースよりも小さい場合はPictureBoxを中央に配置する必要がありますが、PictureBoxの寸法がPanelのクライアントスペースのサイズを超える場合は、このタイプのアクションの設定は1つではありません。ポイント0に位置し、スクロールバーにビューを処理させる場所。

パネルのサイズ変更イベントを処理してみてください。また、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
于 2012-06-16T16:57:37.483 に答える