Foxtable(狐表)用户栏目专家坐堂 → 放大图片


  共有2344人关注过本帖树形打印复制链接

主题:放大图片

帅哥哟,离线,有人找我吗?
刘林
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
放大图片  发帖心情 Post By:2018/5/7 19:00:00 [只看该作者]

请问老师,如何在窗口的picturebox里放一个图片,当滚动鼠标时实现缩放,并且鼠标在哪里就在哪里为中心缩放,这该怎么做?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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()



 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/5/7 22:22:00 [只看该作者]

谢谢,这个好,如何实现拖曳呢?就是可以在窗口内拖动图片到一定的位置

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/7 22:46:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/5/8 14:03:00 [只看该作者]

老师,二楼如果想双击恢复图片最初大小怎么办写?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/8 15:04:00 [只看该作者]

双击事件
    Dim PictureBox1  = e.Form.Controls("PictureBox1")
PictureBox1.Width =200
    PictureBox1.Height =200
    PictureBox1.Top = 10
    PictureBox1.Left = 10

 回到顶部