.net中PictureBox中图片的拖动

 首先在Form窗体上放一个PictureBox,并指定一个图片显示

定义一系列变量处理图片拖动
'处理图片拖动
Private m_Leftx As Integer
Private m_Lefty As Integer
Dim m_MousePosX As Integer
Dim m_MousePosY As Integer
Dim m_DriftX As Integer
Dim m_DriftY As Integer
并给赋初值,可以在Form初始化时做
Me.m_Leftx = Me.PictureBox1.Location.X
Me.m_Lefty = Me.PictureBox1.Location.Y

定义处理鼠标按下的事件

'当鼠标按下时,将鼠标变成手形,并且记录下当前鼠标的位置
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown

Me.Cursor = System.Windows.Forms.Cursors.Hand
m_MousePosX = e.X
m_MousePosY = e.Y

End Sub
定义处理鼠标抬起的事件
'处理鼠标按键抬起的事件,根据鼠标按下时保存的鼠标位置,和当前鼠标的位置,计算鼠标移动偏移量,借此调用移动图片的函数,移动图片
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp

m_DriftX = m_MousePosX - e.X
m_DriftY = m_MousePosY - e.Y

m_Leftx = m_Leftx - m_DriftX
m_Lefty = m_Lefty - m_DriftY

picturemove(sender, e)
Me.Cursor = System.Windows.Forms.Cursors.Arrow

End Sub


'根据偏移量计算出的图片位置,重画图片
Private Sub picturemove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim myBit As New System.Drawing.Bitmap(PictureBox1.Image)

Dim myPicGrh As System.Drawing.Graphics = Me.PictureBox1.CreateGraphics
myPicGrh.Clear(Me.PictureBox1.BackColor)

myPicGrh.DrawImageUnscaled(myBit, m_Leftx - 152, m_Lefty)

myBit.Dispose()
myPicGrh.Dispose()


End Sub

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值