C#鼠标拖动窗体代码
来源:互联网 发布:淘宝回收手机可靠吗 编辑:程序博客网 时间:2024/05/16 07:39
private Point mouseOffset; //记录鼠标指针的坐标
private bool isMouseDown = false; //记录鼠标按键是否按下
/// <summary>
/// 递归得到指定控件偏移量X值
/// </summary>
/// <param name="sender">指定的控件</param>
/// <returns></returns>
private int GetOffsetX(Control sender)
{
if (sender == this)
{
return 0;
}
if (sender.Parent != this)
{
return sender.Left + GetOffsetX(sender.Parent);
}
else
{
return 0;
}
}
/// <summary>
/// 递归得到指定控件偏移量Y值
/// </summary>
/// <param name="sender">指定的控件</param>
/// <returns></returns>
private int GetOffsetY(Control sender)
{
if (sender == this)
{
return 0;
}
if (sender.Parent != this)
{
return sender.Top + GetOffsetY(sender.Parent);
}
else
{
return 0;
}
}
/// <summary>
/// MouseDown
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormTitle_MouseDown(object sender, MouseEventArgs e)
{
int xOffset;
int yOffset;
if (e.Button == MouseButtons.Left)
{
xOffset = -(e.X + GetOffsetX((Control)sender));
yOffset = -(e.Y + GetOffsetY((Control)sender));
mouseOffset = new Point(xOffset, yOffset);
isMouseDown = true;
}
}
/// <summary>
/// MouseMove
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormTitle_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
/// <summary>
/// MouseUp
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FormTitle_MouseUp(object sender, MouseEventArgs e)
{
// 修改鼠标状态isMouseDown的值
// 确保只有鼠标左键按下并移动时,才移动窗体
if (e.Button == MouseButtons.Left)
{
isMouseDown = false;
}
}
- C#鼠标拖动窗体代码
- C#实现窗体的鼠标拖动代码
- C# 如何鼠标拖动无边框窗体
- C# Winform 自定义鼠标拖动窗体类
- C# 用鼠标拖动无边框窗体
- C# 如何鼠标拖动无边框窗体
- C#无标题栏窗体鼠标拖动
- C# winform实现鼠标左键拖动窗体
- 让鼠标拖动WinForm窗体
- 鼠标点击按钮拖动窗体
- C#窗体拖动
- c# 拖动窗体
- C#中利用"消息处理"实现在窗体中按下鼠标左键拖动窗体_L
- 几行代码 轻松实现在窗体上按住鼠标实现拖动窗体
- C# 鼠标拖动图片
- c#界面鼠标拖动
- c#界面鼠标拖动
- 实现鼠标拖动代码
- Enlightenment 是啥
- 在線電視
- 工厂方法模式(Factory Method)
- javascript 正则表达式
- thinkphp 配置大全
- C#鼠标拖动窗体代码
- Enlightenment Foundation Library (EFL) 是啥
- asp.net中使用UrlRewritingNet重写URL
- Groovy on Grails 2008年InfoQ交流活动的胶片
- java 数字 转换为 汉字
- 为什么adrl r2,mem_cfg_val这里不用ldr r2,=mem_cfg_val
- 常回家看看
- 家猫WEB系统
- 一个概括性关于维数约简的论文