- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我以 C# 形式构建了一个 UserControl。我在事件列表中使用 MouseMove 事件。一切正常。
然后,我想检测是否按下了鼠标的右键或左键。MouseEventArgs 提供要使用的按钮状态。
问题是当鼠标左键已经在 UserControl 之外的某处按下时,然后将光标移到 UserControl 上,MouseMove 事件将不会触发。
有什么解决办法吗?
最佳答案
这是因为 MouseDown
发生在其他地方,因此其他地方的 MouseMove
仍然继续发生。
这是一件好事,这样您就不会因为碰巧滑到一边而失去事件,例如从滚动条。
如果你真的想阻止好事在那个特殊的地方发生,你可以释放正在进行的鼠标捕获..:
private void theOtherPlace_MouseMove(object sender, MouseEventArgs e)
{
if (! theOtherPlace.ClientRectangle.Contains(e.Location))
{
User32_DLL.ReleaseCapture();
}
}
使用这个辅助类:
using System.Runtime.InteropServices;
..
public static class User32_DLL
{
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
}
但不确定这是否是个好主意!如果我可以依靠按下的鼠标按钮仍然按应有的方式工作,我总是非常高兴..
或者您可以从另一个 MouseMove
触发 UserControl
的 MouseMove
,将 UC 作为发件人和修改后的 鼠标事件参数
:
private void theOtherPlace_MouseMove(object sender, MouseEventArgs e)
{
if (! theOtherPlace.ClientRectangle.Contains(e.Location))
{
Point pt = yourUserControl.PointToClient(Control.MousePosition);
if (yourUserControl.ClientRectangle.Contains(pt))
{
yourUserControl_MouseMove(listView1,
new MouseEventArgs(e.Button, e.Clicks, pt.X, pt.Y, e.Delta ) );
}
}
}
关于c# - 如何在C# Form中mousedown时触发mousemove事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803907/
当我使用 resharper 时,他总是说 有什么区别? 任何细节都会很好 谢谢大家。 最佳答案 较短的语法已在 C# 2.0 中引入,它只是较长形式的语法糖。 无论你写什么,结果总是一样的。但是,更
我需要在网页中捕获一些数据,然后用户创建 mousedown 事件或在用户按页面元素上的 TAB 键时模拟它。对于 mousedown 我使用标准代码,例如: $('*').on('mousedown
我有一个 html 表格,其中包含拖放列、可调整大小的行以及根据 mousedown、mousemove 和 mouseup 进行更改的可调整大小的列。为了获得更好的性能,我应该让文档在鼠标移动期间不
所以我还没有开始写这些,所以为了清楚起见,我会尽我最大的努力把一些伪代码放在一起——但这里的想法是用户会点击并按住一个“按钮” (最终可能不会成为一个实际的按钮),然后生成一个可移动的 DIV。一旦创
如何在 JQuery 中创建鼠标按下并移动时触发的事件?并且每次 mousedown + mousemove 只触发一次? 最佳答案 更新: 因此,看起来如果您的鼠标不再位于绑定(bind) onmo
我正在使用 NSView 进行拖放操作。 在要拖动的对象(NSView 的子类)中,我实现了 mouseDown: 方法,如下所示: @try { NSPoint location;
我有一个包含 2 个事件的 TPanel: procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shif
我的应用程序一直表现不佳。在删除越来越多的代码后,我设法找到了问题的核心,但这对我来说毫无意义。 一点背景。我的网络编辑器应用程序对击键使用react,例如当按下 Alt 时,调整大小的处理程序将被隐
我希望按钮在单击时更改其颜色(鼠标按下时颜色较深,鼠标松开时原始颜色)并且它可以工作,但仅在第二次单击时有效。这是为什么?我该如何解决这个问题? 按钮 ID 为 1 到 10(按钮 1、按钮 2...
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 3 年前。 有没有办法在动态添加的元素上使用 mouse
我正在尝试向 DIV 添加一个简单的 mousedown 事件监听器。 DIV 有一个子节点,即 IMG。但是,当 mousedown 事件触发时,该事件的 target 和 srcElement 属
嗨,我有这个 HTML 代码 Passengers 并且有这个JS代码 $("Table tr th").mousedown(function (e) { /*mouse
我有一个 mousedown 事件可以更改 Canvas 中对象的图像。但是,在第一次单击期间,除非我添加超时,否则更新功能不会更新图像。此外,我什至尝试 promise 在新图像链接之后等待,然后再
我已经创建了过渡链接,但是当应该使用 onmousedown 事件调用该函数时,我得到了一个未捕获的未定义函数。显然我的功能已定义。我还在学习代码,所以我看不到或不明白它是什么。任何提示将不胜感激。
我正在使用一个名为 circliful 的 jquery 库: https://github.com/pguso/jquery-plugin-circliful 我用它来创建“触觉加载”效果。 在这个
在下面的代码片段中,只有“mousemove”事件有效。 'mousedown' 没有效果,我无法解释为什么会这样。如果我将“mousedown”替换为“click”,它确实有效,但是我想使用 mou
当你使用方法的时候 public boolean mouseDown(Event e, int x, int y) 在Java中,Event对象是干什么的,有什么用?我正在尝试编写一个程序,让某人点击
我正在尝试像这样加载我的导航栏: $.get("nav.html",function(menuData){ $("body").html(menuData); )}; 在“nav.html”中我们
我的问题是,当右键发生 mousedown 事件时,我需要检查是否有 div 如果没有,那么我的 flag 全局 variable 变为 false 但我没有得到该条件。 我的 jQuery 脚本如下
我正在尝试编写一个可移动的对话框,但出现问题。有时当我想通过移动对话框上方的某个位置来移动对话框时,而不是对话框本身,标题文本正在移动,如下所示: 标题文本的 CSS: .arg-dialog-tit
我是一名优秀的程序员,十分优秀!