zoukankan      html  css  js  c++  java
  • Point结构体中Subtract和Add方法在拖曳控件时的应用

      结构体 Point 中方法Subtract()和Add()可用于在同一个坐标系中2点之间相对位置的计算:

    public static Point Subtract(
     Point pt,
     Size sz
    )

    public static Point Add(
     Point pt,
     Size sz
    )

    而 Size 可以通过 Point 转换, 如下Size的一个构造函数:
    public Size(
     Point pt
    )

    下面以处于同一容器下(Form1)的2个组件 label1, label2 , 当拖曳第一个组件label1时, label2也同时跟着移动.

    1. 定义全局字段:

    private Point label1StartPos, offsetPoint;
    private bool canMove = false;

    2. 相关事件方法:

            private void label1_MouseDown(object sender, MouseEventArgs e)
            {
                canMove = true;
                label1StartPos = e.Location;
                offsetPoint = Point.Subtract(label2.Location, new Size(label1.Location));
            }

            private void label1_MouseUp(object sender, MouseEventArgs e)
            {
                canMove = false;
            }

            private void label1_MouseMove(object sender, MouseEventArgs e)
            {
                if (canMove)
                {
                    label1.Location = this.PointToClient(Point.Subtract(label1.PointToScreen(e.Location), new Size(label1StartPos)));
                    label2.Location = Point.Add(label1.Location, new Size(offsetPoint));
                }
            }

     即可.

    ~做事情贵在坚持~
  • 相关阅读:
    CPU,MPU,MCU,SOC,SOPC联系与差别
    中央处理器
    手机CPU
    手机CPU天梯图2018年5月最新版
    Ubuntu输入法切换问题
    说说C与汇编之间的互相联系(转)
    MDK972-EK开发板裸调试设置和裸机程序烧写(转)
    来,打一下五笔的字根表
    64位debian系统下安装inodeClient
    计算机网络——链路层协议
  • 原文地址:https://www.cnblogs.com/csMapx/p/2219864.html
Copyright © 2011-2022 走看看