La solución a nuestro problema es hacer el picturebox mas grande, es decir, que en su propiedad Size tendríamos que cambiar las dimensiones para que la imagen se expandiera, quedando como sigue:
PictureBox1.Size = New System.Drawing.Size(x, y)Donde "x" y "y" son las dimensiones de nuestro picturebox (largo y ancho respectivamente). Aparentemente hemos solucionado el problema del zoom, sin embargo, intente usted mover la imagen ¿Puede?
Si usted quiere intentarlo me parece perfecto, pero para ahorrarle tiempo yo le diré que en efecto no es posible, por mas que intente mover la imagen para poder ver el resta, usted no podrá. He aquí nuestro gran problema, si bien existen dos formas de solucionarlo, y comenzare por la mas sencilla.
Mover PictureBox con el teclado (flechas de dirección)
Para mover nuestra imagen en zoom que ya tenemos en pantalla después de aplicar nuestro código anterior, solo basta clickear en la propiedad KeyDown de nuestro form, y llamar a la propiedad e.KeyCode y asignar las teclas para mover nuestro picturebox:
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles SplitContainer1.KeyDown
Select Case e.KeyCode
Case Keys.Up
Me.PictureBox1.Location = New Point(Me..PictureBox1.Location.X, Me..PictureBox1.Location.Y + 10)
Case Keys.Down
Me.PictureBox1l.Location = New Point(Me..PictureBox1.Location.X, Me..PictureBox1.Location.Y - 10)
Case Keys.Left
Me.PictureBox1.Location = New Point(Me..PictureBox1.Location.X + 10, Me..PictureBox1.Location.Y)
Case Keys.Right
Me.PictureBox1.Location = New Point(Me..PictureBox1.Location.X - 10, Me..PictureBox1.Location.Y)
End Select
End sub
Las primeras dos lineas (Keys.Up y Keys.Down) son necesarias para mover el picturebox a lo largo del eje Y de nuestro form, la magnitud 10 nos indica, cuando se desplazar hacia arriba o hacia abajo, cada vez que se presione la tecla correspondiente. Homologamente para Left y Right ocurrira lo mismo. Observe que si vamos a desplazar Qel picturebox alrededor del eje Y, X no es modificado y no se le agrega una magnitud, poner "Me..PictureBox1.Location.X" es igual que poner "Me..PictureBox1.Location.X+0".
Mover PictureBox con el mouse (dar click sobre la imagen y después desplazarla)
Lamentablemente mover un picturebox, un form u otra cosa con el mouse no es tan sencillo, pues requiere llamar ciertas librerias, y después aplicar nuestro ingenio, no explicare a detalle el procedimiento pues requiere demasiada explicacion, sim embargo, les compartiré el código.
- El primer paso es llamar las librerias en la parte donde usted declare sus variables a utilizar.
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Integer, ByVal wMsg As Integer, _
ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Declare Sub ReleaseCapture Lib "user32" ()
- El segundo paso es ingresar a la propiedad mousemove de nuestro form y poner lo siguiente:
Dim lHwnd As Int32
lHwnd = ptcGeneral.Handle
If lHwnd = 0 Then Exit Sub
ReleaseCapture()
SendMessage(lHwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
Finalmente queda ejecutar nuestro programa y ver lo que ocurre :)
Gracias muy util.
ResponderEliminar