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;

      

  • 相关阅读:
    javascript类型系统——日期Date对象
    javascript类型系统——undefined和null
    javascript运算符语法概述
    javascript运算符
    javascript语句——表达式语句、块语句、空语句和声明语句
    javascript语句
    javascript中的数据类型转换
    javascript类型系统
    Sqli-labs Less-21 cookie注入 base64编码 updatexml()报错注入
    Sqli-labs Less-20 cookie注入 extractvalue()报错注入
  • 原文地址:https://www.cnblogs.com/CPFlying/p/1745750.html
Copyright © 2011-2022 走看看