哈喽,你好啊,我是雷工!
上一节时练习做了一个简单的登录窗体界面,为了美观设置成了无边框,
当运行起来,发现无边框的窗体无法用鼠标拖动位置,
本节记录通过添加代码实现无边框窗体实现移动,以下为测试笔记。
01 效果展示
1.1、添加代码前,在窗体上按住鼠标左键拖动鼠标,无边框窗体无法被鼠标拖动。
1.2、当添加完相关代码,可以实现用鼠标拖动窗体移动。
02、实现步骤
2.1、MouseDown方法
方法代码:
private void Frm_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)//判断鼠标左键是否被按下
{
mouseOff = new Point(-e.X, -e.Y);//得到变量的值
leftFlag = true;//标记鼠标左键的状态
}
}
2.2、MouseMove方法
方法代码:
private void Frm_MouseMove(object sender, MouseEventArgs e)//鼠标移动触发MouseMove事件
{
if(leftFlag)//判断鼠标左键有没有被按下
{
Point mouseSet = Control.MousePosition;//获取屏幕中鼠标所在的位置
mouseSet.Offset(mouseOff.X, mouseOff.Y);//设置移动后的位置
Location=mouseSet;
}
}
2.3、MouseUp方法
方法代码:
private void Frm_MouseUp(object sender, MouseEventArgs e)//鼠标左键抬起后触发MouseUp事件
{
if(leftFlag)
{
leftFlag = false;//释放鼠标后标注为false;
}
}
2.4、登录窗体关联方法
在窗体的事件中关联响应
2.5、创建字段
新建两个字段用来存放鼠标的坐标及鼠标左键的状态
代码如下:
private Point mouseOff;//鼠标移动位置变量
private bool leftFlag;//标签是否为左键
03 后记
通过添加以上代码,并做相应的关联即可实现鼠标拖动无边框的Winform窗体,有兴趣的小伙伴也可以尝试一下;