以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  放大图片  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=118633)

--  作者:刘林
--  发布时间:2018/5/7 19:00:00
--  放大图片
请问老师,如何在窗口的picturebox里放一个图片,当滚动鼠标时实现缩放,并且鼠标在哪里就在哪里为中心缩放,这该怎么做?
--  作者:有点蓝
--  发布时间:2018/5/7 21:55:00
--  
大概这个样子,细节自己调整一下。不过会有误差

全局代码
Public Sub pictureBox1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim PictureBox1 = sender 
If e.Delta > 0 Then
    PictureBox1.Width += 50
    PictureBox1.Height += 50
    PictureBox1.Top -= e.Y / PictureBox1.Height * 50
    PictureBox1.Left -= e.X / PictureBox1.Width * 50
Else
    PictureBox1.Width -= 50
    PictureBox1.Height -= 50
    PictureBox1.Top += e.Y / PictureBox1.Height * 50
    PictureBox1.Left += e.X / PictureBox1.Width * 50
End If

End Sub

窗口放一个图片框,afterload事件
Dim PictureBox1 As System.Windows.Forms.panel  = e.Form.Controls("PictureBox1").basecontrol
AddHandler PictureBox1.MouseWheel, AddressOf pictureBox1_MouseWheel

图片框MouseEnter事件
e.sender.Select()



--  作者:刘林
--  发布时间:2018/5/7 22:22:00
--  
谢谢,这个好,如何实现拖曳呢?就是可以在窗口内拖动图片到一定的位置
--  作者:有点蓝
--  发布时间:2018/5/7 22:46:00
--  
参考:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=82863
--  作者:刘林
--  发布时间:2018/5/8 14:03:00
--  
老师,二楼如果想双击恢复图片最初大小怎么办写?
--  作者:有点蓝
--  发布时间:2018/5/8 15:04:00
--  
双击事件
    Dim PictureBox1  = e.Form.Controls("PictureBox1")
PictureBox1.Width =200
    PictureBox1.Height =200
    PictureBox1.Top = 10
    PictureBox1.Left = 10