C# winform 无边框窗体鼠标点击移动事件
2016-11-26 06:45
363 查看
原文地址:http://blog.csdn.net/qq_15126969/article/details/40024769
这里所谓的无边框窗体是指去除系统自带的标题栏和最大最小化等那周围一圈的窗体
即把窗体的FormBorderStyle设置为none后的窗体(效果如下)
这是有边框的:
去除边框的:
右边框窗体想要移动位置,用鼠标点击标题栏移动即可,那么没边框的该如何移动这个问题,我也是纠结了好久。
有人可能觉得干嘛要去除边框,因为我觉得QQ那样的登录窗体比较好看,自己再去做最小化按钮和关闭按钮。
好了,正题,该如何移动!
【Answers】
[csharp] view
plain copy
print?
<span style="white-space:pre"> </span>//初始化
bool beginMove = false;
int currentXPosition;
int currentYPosition;
private void LoginForm_MouseDown(object sender, MouseEventArgs e)
{
//将鼠标坐标赋给窗体左上角坐标
beginMove = true;
currentXPosition = MousePosition.X;
currentYPosition = MousePosition.Y;
this.Refresh();
}
private void LoginForm_MouseLeave(object sender, EventArgs e)
{
//设置初始状态
currentXPosition = 0;
currentYPosition = 0;
beginMove = false;
}
private void LoginForm_MouseMove(object sender, MouseEventArgs e)
{
if(beginMove)
{
//根据鼠标X坐标确定窗体X坐标
this.Left += MousePosition.X - currentXPosition;
//根据鼠标Y坐标确定窗体Y坐标
this.Top += MousePosition.Y - currentYPosition;
currentXPosition = MousePosition.X;
currentYPosition = MousePosition.Y;
}
}
private void LoginForm_MouseUp(object sender, MouseEventArgs e)
{
beginMove = false;
}
其实很简单对吧。
END.
这里所谓的无边框窗体是指去除系统自带的标题栏和最大最小化等那周围一圈的窗体
即把窗体的FormBorderStyle设置为none后的窗体(效果如下)
这是有边框的:
去除边框的:
右边框窗体想要移动位置,用鼠标点击标题栏移动即可,那么没边框的该如何移动这个问题,我也是纠结了好久。
有人可能觉得干嘛要去除边框,因为我觉得QQ那样的登录窗体比较好看,自己再去做最小化按钮和关闭按钮。
好了,正题,该如何移动!
【Answers】
[csharp] view
plain copy
print?
<span style="white-space:pre"> </span>//初始化
bool beginMove = false;
int currentXPosition;
int currentYPosition;
private void LoginForm_MouseDown(object sender, MouseEventArgs e)
{
//将鼠标坐标赋给窗体左上角坐标
beginMove = true;
currentXPosition = MousePosition.X;
currentYPosition = MousePosition.Y;
this.Refresh();
}
private void LoginForm_MouseLeave(object sender, EventArgs e)
{
//设置初始状态
currentXPosition = 0;
currentYPosition = 0;
beginMove = false;
}
private void LoginForm_MouseMove(object sender, MouseEventArgs e)
{
if(beginMove)
{
//根据鼠标X坐标确定窗体X坐标
this.Left += MousePosition.X - currentXPosition;
//根据鼠标Y坐标确定窗体Y坐标
this.Top += MousePosition.Y - currentYPosition;
currentXPosition = MousePosition.X;
currentYPosition = MousePosition.Y;
}
}
private void LoginForm_MouseUp(object sender, MouseEventArgs e)
{
beginMove = false;
}
其实很简单对吧。
END.
相关文章推荐
- C# winform 无边框窗体鼠标点击移动事件
- c# 无边框窗体鼠标点击移动方法
- vc鼠标点击窗体任意位置移动窗体代码
- javascript事件列表大全解说,点击事件,双击事件,触发事件,键盘事件,鼠标移动事件,javaScript事件使用小全
- C# 无边框窗体移动 点击任务栏实现最小化与还原
- winfrom 无窗体边框的时候可以让窗体移动直接在控件上写事件
- C# Win32API 模拟鼠标移动及点击事件
- cocos2d-x 输入框升级版 通过鼠标点击事件和键盘左右键移动光标
- JTable中获取鼠标移动、点击以及内容改变事件
- 鼠标移动/点击事件
- Android 百度地图 对鼠标点击、移动、抬起三个事件的监听
- duilib 鼠标点击窗体移动
- 无边框窗体随着鼠标的移动而移动,类似于qq的登录界面
- C# Win32API 模拟鼠标移动及点击事件
- 鼠标点击按钮事件(列表,鼠标移动形状)
- 不对窗体进行边框装饰后,实现对鼠标事件的监控
- 不对窗体进行边框装饰后,实现对鼠标事件的监控
- CSS 鼠标响应事件,鼠标经过CSS,鼠标移动CSS,鼠标点击CSS
- Winfrom窗体在去掉窗体边框的情况下使鼠标移动窗体
- MFC 图片控件图片加载以及鼠标移动事件和鼠标点击事件