winform控件拖动
阅读原文时间:2023年07月09日阅读:1

示例代码

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

public static class ControlDrag
{
static Dictionary _locationList = new Dictionary();
static Dictionary _isDownList = new Dictionary();
//扩展函数
public static void AddDrag(this Control control)
{
if (_locationList.ContainsKey(control.Name)==false)
{
_locationList.Add(control.Name, new Point() );
_isDownList.Add(control.Name, false);
        
        
//按下鼠标
control.MouseDown += (s, ev) =>
{

            \_isDownList\[control.Name\] = true;  
            \_locationList\[control.Name\] = new Point(ev.X, ev.Y);  
        };  
        //松开鼠标  
        control.MouseUp += (s, ev) =>  
        {

            \_isDownList\[control.Name\] = false;

        };  
        //鼠标移动  
        control.MouseMove += (s, ev) =>  
        {  
            if (\_isDownList\[control.Name\])  
            {  
                int left = control.Left + ev.X - \_locationList\[control.Name\].X;  
                int top = control.Top + ev.Y - \_locationList\[control.Name\].Y;  
                control.Location = new Point(left, top);  
            }  
        };

    }

}

}

调用方式

private void Form1_Load(object sender, EventArgs e)
{

//可以是任何控件
panel1.AddDrag();

//可以是任何控件 label1.AddDrag();

_
}_

/*

文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放 文字少不能投放

*/

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章