欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【WinForm】无边框窗体移动

程序员文章站 2022-07-14 12:21:25
...

记录学习过程

创建日期:2019-04-13

无边框窗体移动

当窗体设置为无边框后,比如在窗体顶部添加一个panel控件作为Top,想通过移动panel来移动窗体

方法

/// <summary>
/// 扩展方法
/// </summary>
public static class Extensions
{
	/// <summary>
	/// 无边框窗体移动
	/// </summary>
	/// <param name="control">点击该控件移动窗体</param>
	public static void ControlMove(Form form,params Control[] control)
	{
	    foreach (var item in control)
	    {
	        Point downPoint = new Point();
	        //按下鼠标记录点
	        item.MouseDown += (sender, e) =>
	        {
	            downPoint = new Point(e.X, e.Y);
	        };
	        //鼠标移动时,设置窗体位置
	        item.MouseMove += (sender, e) =>
	        {
	            if (e.Button == MouseButtons.Left)
	            {
	                form.Location = new Point(form.Location.X + e.X - downPoint.X, form.Location.Y + e.Y - downPoint.Y);
	            }
	        };
	    }
	}
}

调用

//通过panelTop,panelLeft移动窗体
 frm.SetRowsCount(panelTop,panelLeft);