无边框窗体移动实现方法
2010-05-15 17:49
615 查看
在类中定义两个变量
private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
增加鼠标按下的事件
private void Main_MouseDown(object sender, MouseEventArgs e)
{
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
yOffset = -e.Y - SystemInformation.CaptionHeight-SystemInformation.FrameBorderSize.Height;
mouseOffset = new Point(xOffset, yOffset);
isMouseDown = true;
}
}
增加鼠标鼠标移动的事件
private void Main_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
增加鼠标放开的事件
private void Main_MouseUp(object sender, MouseEventArgs e)
{
// 修改鼠标状态isMouseDown的值
// 确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
增加鼠标按下的事件
private void Main_MouseDown(object sender, MouseEventArgs e)
{
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -e.X - SystemInformation.FrameBorderSize.Width;
yOffset = -e.Y - SystemInformation.CaptionHeight-SystemInformation.FrameBorderSize.Height;
mouseOffset = new Point(xOffset, yOffset);
isMouseDown = true;
}
}
增加鼠标鼠标移动的事件
private void Main_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
增加鼠标放开的事件
private void Main_MouseUp(object sender, MouseEventArgs e)
{
// 修改鼠标状态isMouseDown的值
// 确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
相关文章推荐
- C#实现无边框窗体移动方法
- [转]C#无边框窗体移动的三种方法
- Delphi如何实现无边框窗体的移动
- 使用C#实现移动无边框窗体
- 使用C#实现移动无边框窗体
- C# 无边框窗体 移动 两种方法
- C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置
- 在DELPHI中实现无标题窗体的移动最简单的方法
- winform技巧—没有边框移动窗体的方法
- VB.NET移动无边框窗体 两种方法
- 在DELPHI中实现无标题窗体的移动最简单的方法
- 易语言用窗口消息实现无边框调整和窗口的移动方法
- C# 无边框窗体之窗体移动实现代码
- 用Qt实现窗体的无边框、可移动、透明不规则显示(需背景透明的图片)
- 无边框窗体的移动方法
- [转]C#无边框窗体移动的三种方法
- Delphi实现无边框窗体的移动
- C#无边框窗体移动 将事件绑定到想实现的控件上
- C#实现Winform无边框移动的方法
- C#实现将窗体固定在显示器的左上角且不能移动的方法