在 OnMouseMove 事件中查看鼠标左键是不是被按住

Posted

技术标签:

【中文标题】在 OnMouseMove 事件中查看鼠标左键是不是被按住【英文标题】:See if left mouse button is held down in the OnMouseMove event在 OnMouseMove 事件中查看鼠标左键是否被按住 【发布时间】:2011-01-12 06:23:36 【问题描述】:

如何在控件的OnMouseMove 事件中检测鼠标左键是否被按住?

【问题讨论】:

在什么平台上? WinForms、Silverlight 和 WPF 等的解决方案不同。 【参考方案1】:

您的 OnMouseMove 事件的事件处理程序应该会收到一个 MouseEventArgs,它会告诉您是否按下了左键

private void mouseMoveEventHandler(object sender, MouseEventArgs e)

   if(e.Button == MouseButtons.Left)
   
     //do left stuff
   
   else 
   
     // do other stuff
   

【讨论】:

【参考方案2】:

按住鼠标左键时将布尔值设置为 true,松开鼠标左键时将其设置为 false。

如果您在触发 OnMouseMove 事件时检查 bool 的条件,那么您将能够找出它是否被按住。

伪代码:

private bool isDown;

MouseDown()

   isDown = true;


MouseUp()

   isDown = false;

OnMouseMove()

   if(isDown)
   
       //Do something...
   

【讨论】:

以上是关于在 OnMouseMove 事件中查看鼠标左键是不是被按住的主要内容,如果未能解决你的问题,请参考以下文章

案例:简易的Div拖拽

学习笔记——JavaScript

JS 键盘回车和鼠标单击事件合并

JS之拖拽案例

原生js实现拖拽功能

javascript语句语义大全