问题标签 [mouseevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
19165 浏览

c# - 如何检测鼠标是否在整个表单和子控件内?

我需要检测用户何时将鼠标移到表单及其所有子控件上,以及何时离开表单。我尝试了表单的MouseEnterMouseLeave事件,我尝试了WM_MOUSEMOVE&WM_MOUSELEAVEWM_NCMOUSEMOVE&WM_NCMOUSELEAVE对 Windows 消息,但似乎没有一个按我想要的那样工作......

我的大部分表单都被各种子控件占据,没有太多可见的客户区。这意味着如果我非常快速地移动鼠标,则不会检测到鼠标移动,尽管鼠标在窗体内。

例如,我有一个文本框,它停靠在底部,位于桌面和文本框之间,只有一个非常小的边框。如果我将鼠标从底部快速移动到 TextBox 中,则不会检测到鼠标移动,但鼠标在 TextBox 内部,因此在 Form 内部。

我怎样才能达到我所需要的?

0 投票
4 回答
5803 浏览

c# - WPF 鼠标点击关闭事件

我知道每个控件都有一个鼠标单击事件,但是有没有办法确定鼠标单击何时不在控件上?

0 投票
1 回答
2894 浏览

javascript - 从鼠标事件中获取绝对“顶部”位置(Javascript/jQuery)

在 mouseenter/mouseleave 事件中,我想捕获表格单元格的绝对“顶部”位置。

到目前为止,事件是这样附加的:

0 投票
2 回答
413 浏览

winforms - 如何在winforms应用程序中单击并拖动

我有一个简单的 winforms 应用程序,其中包含许多控件。我希望能够从表单上的任何位置单击并拖动并移动整套东西(平移)。我已经弄清楚了重新定位位。我仍然需要弄清楚的是如何绑定点击和拖动来更新我的偏移量。

到目前为止,我尝试的是在主窗体和事件中添加东西MouseDown(有点像这个人展示的东西),但它们没有被调用(它们中的断点不会被击中)MouseUpMouseMove

我究竟做错了什么?


编辑:我不是在寻找拖放,因为我不一定有任何东西可以拖放。我想要的将适用于以下规范:

  • 创建一个没有控件的表单
  • 设置一个 x 和 y 变量,当它们更新时打印到表单标题
  • 当用户单击并拖动表单上的任意位置时,x 和 y 会更新以反映指针的运动(单击并向下和向右拖动将导致x>0and y>0

根据 Eric 的评论,我认为我正在连接错误控件上的事件。

有没有办法(使用类似控件的设置)在一个地方捕获所有事件,而不管它们应该发送到什么地方?或者是否有任何其他未经处理的事件被链接到父母?就我而言,我永远不会关心事件发生了什么,所以这将是我想要得到的。

0 投票
2 回答
2601 浏览

c# - WPF - 如何处理引发该事件的组件外部的鼠标事件?

语境:

有一个应用程序可以在画布上绘制东西。例如,用户点击的地方有一个黑点。但是在主窗口代码的事件处理程序中处理画布引发的事件对我来说很丑陋。所以我写了一个类,它的方法镜像画布鼠标事件,我在事件处理程序中调用这些方法。

很好,但我想要更多...

问题:

是否可以在我的 DrawingTool 类中直接处理画布引发的事件,而无需定义画布事件处理程序。我想保持我的 Window1 代码干净并专注于窗口内容并将事件处理完全移动到我的类中。

我考虑过从 FrameworkElement 派生 DrawingTool,覆盖 OnRender 并将其透明地绘制在画布上,因此用户的点击似乎是在画布上进行的,但实际上会在 DrawingTool 中引发并在内部处理。这种方法适用于绘图功能(绘制完成后,将绘制的对象添加到画布子级并从 DrawingTool 子级中删除),但是当涉及到选择模式或其他模式时,例如元素的命中测试会出现问题。

因此,我将不胜感激任何建议如何解决我的问题或解释为什么这是一个愚蠢的想法:)

0 投票
4 回答
22710 浏览

java - 如何使用鼠标拖动事件在Java小程序上绘制矩形并使其保持不变

我有可以绘制矩形的程序。我有两个问题我无法解决。在我绘制矩形后,它不会留下来。我拥有的唯一代码可以清除画布下的画布,仅在鼠标拖动时才调用重画。为什么当我释放鼠标或移动鼠标时我的画布会清除。第二件事不是问题,但我无法弄清楚,当我的矩形的高度或宽度为负时,矩形被填充为黑色。

0 投票
6 回答
3438 浏览

.net - 如何检测是否同时按下左右按钮?

我想在控件上进行三个鼠标操作:左,右和两者。

我有左键和右键,目前正在使用第三个中键,但我很好奇我如何使用左键和右键一起按下,对于那些用户有一个没有中键的鼠标的情况。这将在自定义控件的 OnMouseDown 方法中处理。

更新 查看建议的答案后,我需要澄清我试图做的是对 MouseDown 事件中的鼠标单击采取行动(实际上是控件的 OnMouseDown 方法)。因为当单击鼠标的左右按钮(每个按钮一个)时,.NET 似乎总是会引发两个 MouseDown 事件,我猜想做到这一点的唯一方法是做一些低级别的 windows 消息管理或在 MouseDown 之后实现某种延迟执行操作。最后,使用鼠标中键更简单。

现在,如果动作发生在 MouseUp 上,那么 Gary 或 nos 的建议会很有效。

对此问题的任何进一步见解将不胜感激。谢谢!

0 投票
1 回答
3732 浏览

actionscript-3 - 在 Actionscript 3 中通过 Sprite 路由鼠标事件

在一个纯 Actionscript 3 项目中,我有一个与另一个精灵重叠的精灵。下部精灵通常处理鼠标点击。当较低的精灵与较高的精灵重叠时,较低的精灵不再处理鼠标事件。

我了解这是正常行为。

我希望下部精灵在重叠时处理鼠标事件。(在我的特定例子中,较高的精灵只是一个装饰品;无论如何它没有正常的鼠标交互。)这可能吗?有没有办法通过更高的精灵路由鼠标事件?

我在这里找到了关于我的问题的简短而过时的讨论:

http://kb2.adobe.com/cps/137/tn_13766.html

谢谢你。

0 投票
1 回答
1179 浏览

wpf - 在 WPF 中用左键伪造鼠标按下

我在 WPF 中有一个控件我想在该控件上伪造一个 mousedown,用鼠标左键我正在尝试 myControl.OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1,0,0,0))

但它给了我“无法在此处访问受保护的方法”

有人知道吗?

谢谢

0 投票
1 回答
771 浏览

c# - 在 MouseDown 之前调用 RichTextBox SelectionChanged?

我正在使用RichTextBox,如果鼠标按下,我想在SelectionChanged 事件中做一件事,如果不是(例如,如果键盘用于选择某些东西)。但是,SelectionChanged 事件显然是在 MouseDown 之前调用的,因此在处理 SelectionChanged 时,我似乎无法知道鼠标是否已关闭。有没有其他人遇到过这个问题?有没有人有适合他们的解决方案?

我正在做一些突出显示的代码,我需要在调用 SelectionChanged 之前拦截鼠标。