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

     即可.

    ~做事情贵在坚持~
  • 相关阅读:
    tcpip协议
    Linux特殊文件使用原理
    shell之常用内置变量
    SSM框架CRUD小案例
    个人博客开发笔记
    蓝天筹项目开发记录
    二叉平衡树AVL的插入与删除(java实现)
    二叉搜索树(java实现)
    树的基本操作
    SQL连接
  • 原文地址:https://www.cnblogs.com/csMapx/p/2219864.html
Copyright © 2011-2022 走看看