C#窗体设计:[7]移动窗体
1、新建一个C#应用程序,应用程序命名为Move。
![C#窗体设计:[7]移动窗体](https://exp-picture.cdn.bcebos.com/c8373cbc7dc5cf677864cef28e96b814f5d02693.jpg)
2、窗体界面设计如下,窗体的FormBorderStyle属性设置为None:
![C#窗体设计:[7]移动窗体](https://exp-picture.cdn.bcebos.com/47bf594ec28333bf65d42efbdbb8b43ea9db1d93.jpg)
3、程序初始化如下:
bool mov = false;//初始化
int xpos;
int ypos;
在窗体的MouseDown事件中添加一下代码:
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
mov = true;
xpos = MousePosition.X;//鼠标的x坐标为当前窗体左上角x坐标
ypos = MousePosition.Y;//鼠标的y坐标为当前窗体左上角y坐标
}
![C#窗体设计:[7]移动窗体](https://exp-picture.cdn.bcebos.com/560be432939c2cf7b889c7ad452c5b1b1fde1293.jpg)
4、在窗体的MouseMove事件中添加一下代码:
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (mov)
{
this.Left += MousePosition.X - xpos;//根据鼠标x坐标确定窗体的左边坐标x
this.Top += MousePosition.Y - ypos;//根据鼠标的y坐标窗体的顶部,即Y坐标
xpos = MousePosition.X;
ypos = MousePosition.Y;
}
}
![C#窗体设计:[7]移动窗体](https://exp-picture.cdn.bcebos.com/f59dbe39131fceeca3e272c179c4ec9958430b93.jpg)
5、在窗体的MouseUp和MouseLeave事件中添加一下代码:
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
mov = false;//停止移动
}
private void Form1_MouseLeave(object sender, EventArgs e)
{
xpos = 0; //设置初始状态
ypos = 0;
mov = false;
}
![C#窗体设计:[7]移动窗体](https://exp-picture.cdn.bcebos.com/054056fe1e425d6b7dea529d11883913e9e50093.jpg)
6、程序运行如下:
![C#窗体设计:[7]移动窗体](https://exp-picture.cdn.bcebos.com/bf6e59704618dfda6000203289214f5792567793.jpg)