• 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));
                }
            }

     即可.

    ~做事情贵在坚持~
  • 相关阅读:
    第二章、Java内存区域与内存溢出异常
    第二章、Java内存区域与内存溢出异常
    腾讯//格雷编码
    腾讯//格雷编码
    数据结构5.5_广义表的递归算法
    数据结构5.4_m元多项式的表示
    数据结构4.2_串操作应用举例_建立词索引表
    数据结构3_栈和队列
    数据结构2_线性表
    数据结构1_绪论
  • 原文地址:https://www.cnblogs.com/csMapx/p/2219864.html
Copyright © 2020-2023  润新知