当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .net中PictureBox中图片的拖动

ASP.NET
ASP.NET上传图片时 产生预览
动态改变asp.net网页的标题
一个ASP.NET中使用的MessageBox类
ASP.NET设计网络硬盘之两重要类
ASP.NET与MySQL数据库简明图示入门教程
ASP.NET中为DataGrid添加合计字段
利用ASP.NET的内置功能抵御Web攻击
ASP.NET+Web服务实现软件共享
ASP.NET设计网络硬盘之文件夹实现
在ASP.NET中使用SQL的IN操作
datagrid与DataSet结合使用中出现的索引问题
asp.net开发web项目-vss集成环境配置
ASPX保存远程图片到本地的两种方法的函数
ASP.NET设计网络硬盘之删除文件夹
开发ASP.NET下的MP3小偷程序
对“学号”、“身份证”的数字分析
Asp.net url分页的用户控件
ASP.NET 2.0中DataTable小兵变大将
将dataset以xml形式发给客户端下载
ASP.NET实现自适应图片大小的弹窗 窗口可任意编辑

ASP.NET 中的 .net中PictureBox中图片的拖动


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 254 ::
收藏到网摘: n/a

.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