拖动无边框窗体Form至桌面任何位置
首先建一个Windows应用程序
将Form1的 FormBorderStyle属性设置为Noe
创建控件panel1放在标题栏位置
代码
Point mouseOff;
//
鼠标移动位置变量
bool leftFlag; // 标签是否为左键
private void panel1_MouseDown( object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point( - e.X, - e.Y); // 得到变量的值
leftFlag = true ; // 点击左键按下时标注为true;
}
}
private void panel1_MouseMove( object sender, MouseEventArgs e)
{
if (leftFlag)
{
Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y); // 设置移动后的位置
Location = mouseSet;
}
}
private void panel1_MouseUp( object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false ; // 释放鼠标后标注为false;
}
}
bool leftFlag; // 标签是否为左键
private void panel1_MouseDown( object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOff = new Point( - e.X, - e.Y); // 得到变量的值
leftFlag = true ; // 点击左键按下时标注为true;
}
}
private void panel1_MouseMove( object sender, MouseEventArgs e)
{
if (leftFlag)
{
Point mouseSet = Control.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y); // 设置移动后的位置
Location = mouseSet;
}
}
private void panel1_MouseUp( object sender, MouseEventArgs e)
{
if (leftFlag)
{
leftFlag = false ; // 释放鼠标后标注为false;
}
}
就可以实现了