ズームイン中および通常の状態のときに、PictureBoxの端を超えてパンしないようにコードを変更する方法を知りたいです。可能であれば、ホバリングしているマウスの現在の位置でズームし、ズーム中の画質を維持する方法も知りたいです。どんな助けでも大歓迎です。
ズームのコードは次のとおりです。
Private Sub PictureBox_MouseWheel(sender As System.Object,
e As MouseEventArgs) Handles PictureBox1.MouseWheel
If e.Delta <> 0 Then
If e.Delta <= 0 Then
If PictureBox1.Width < 500 Then Exit Sub
Else
If PictureBox1.Width > 2000 Then Exit Sub
End If
PictureBox1.Width += CInt(PictureBox1.Width * e.Delta / 1000)
PictureBox1.Height += CInt(PictureBox1.Height * e.Delta / 1000)
End If
End Sub
そして、これが私が使用しているパンのコードです:
Private Offset As Point
Private Sub Picturebox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
Offset = e.Location
End Sub
Private Sub Picturebox1_MouseMove(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseMove
PictureBox1.Select()
If e.Button = Windows.Forms.MouseButtons.Left Then
PictureBox1.Left += e.X - Offset.X
PictureBox1.Top += e.Y - Offset.Y
End If
End Sub