【CITE】 C#中实现拖动无边框Form窗体

时间:2023-03-10 07:03:30
【CITE】 C#中实现拖动无边框Form窗体
首先建一个Windows应用程序

将Form1的 FormBorderStyle属性设置为None

主要是在Form1窗体触发三个事件:Form4_MouseDown,Form4_MouseMove,Form4_MouseUp

代码如下:

     
public partial class Form1 : Form
{
Point mouseOff; //鼠标移动位置变量
bool leftFlag; //标签是否为左键 public Form1()
{
InitializeComponent(); }
}

  

//用代码设置窗体的起始位置

private void Form_Load(object sender, System.EventArgs e)
{
this.Left=(int)((Screen.PrimaryScreen.Bounds.Width-this.Width)/);
this.Top=(int)((Screen.PrimaryScreen.Bounds.Height-this.Height)/);
} private void Form1_MouseDown(object sender, MouseEventArgs e)
{
  if (e.Button == MouseButtons.Left)
{
    mouseOff = new Point(-e.X, -e.Y); //得到变量的值
    leftFlag = true; //点击左键按下时标注为true;
  }
} private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (leftFlag)
{
Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
Location = mouseSet;
}
} private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false;//释放鼠标后标注为false;
 }
}
}