zoukankan      html  css  js  c++  java
  • C# 图片框跟随鼠标移动

          先贴上代码

       private bool isMouseDown = false;
            private Point mouseOffset; //记录鼠标指针的坐标

            private void PicBox_MouseDown(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    mouseOffset.X = e.X;
                    mouseOffset.Y = e.Y;
                    isMouseDown = true;
                }
            }

            private void PicBox_MouseMove(object sender, MouseEventArgs e)
            {
                if (isMouseDown)
                {
                    int left = PicBox.Left + e.X - mouseOffset.X;
                    int top = PicBox.Top + e.Y - mouseOffset.Y;
                    PicBox.Location = new Point(left,top);
                }
            }

            private void PicBox_MouseUp(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    isMouseDown = false;
                }
            }

       事件中的 MouseEventArgs e :

      根据e得到的坐标,不是鼠标相对与Form左上角的坐标,而是相对于图片框的左上角坐标,所以算鼠标偏移量的时候,只要计算两次事件对象e中的坐标的差值!

      保存鼠标按下时相对于图片框左上角的坐标

                    mouseOffset.X = e.X;
                    mouseOffset.Y = e.Y;

      移动时得到偏移量

                    e.X - mouseOffset.X;
                    e.Y - mouseOffset.Y;

         算出图片框的新位置

                    int left = PicBox.Left + e.X - mouseOffset.X;
                    int top = PicBox.Top + e.Y - mouseOffset.Y;

      

  • 相关阅读:
    缅怀
    74LS164的使用
    跑步
    Datasheet,你会读么?[转]
    清华附小给的书单
    iOS-小知识
    网络-GET&POST
    网络-基础
    网络-HTTP其他常见方法
    数据解析
  • 原文地址:https://www.cnblogs.com/CPFlying/p/1745750.html
Copyright © 2011-2022 走看看