草庐IT

鼠标错位

全部标签

c# - 如何在 WPF 中获取鼠标在屏幕上的位置?

它在一个特定的控件内起作用,但它不对特定的控件起作用。如何直接从屏幕获取鼠标位置并独立于任何控件使用鼠标事件(无需平台调用)?需要2个点:鼠标不在控件内但在屏幕上时的鼠标事件。鼠标不在控件内但在屏幕上时的鼠标位置。不使用PlatformInvoke应该可以解决。接下来的两个不起作用:System.Windows.Input.Mouse.GetPosition(this)不会将鼠标位置移出特定控件。System.Windows.Forms.Cursor.Position.XSystem.Windows.Forms.Cursor.Position不起作用,因为它在WPF应用程序中没有类型,

c# - 如何在 C# 中检查鼠标是否移动,同时鼠标左键按下

我需要找到一种方法来检查鼠标是否在c#中移动,同时左键按下。 最佳答案 这是一个示例(WPF):publicMainWindow(){InitializeComponent();this.MouseMove+=newMouseEventHandler(MainWindow_MouseMove);}voidMainWindow_MouseMove(objectsender,MouseEventArgse){if(e.LeftButton==MouseButtonState.Pressed){//dosomething}}

c# - 如何在 winform 和 wpf 中以编程方式进行鼠标移动、单击、右键单击和按键等操作?

如何在winform和wpf中以编程方式进行鼠标移动、单击、右键单击和按键等操作。如果可能,请帮助我提供代码片段。 最佳答案 如果我正确理解您的问题,那么您想要真正模拟输入。在这种情况下,SendInput是可行的方法。来自thislinkPInvoketoSendInput–thisistheofficialwaytosimulateinput.Itpushestheinputthroughalloftheexpectedcodepaths,andisindistinguishablefromrealinput.一个简单的使用方法

c# - 如何捕获鼠标移动事件

我想在我的主窗体中捕获鼠标移动事件。虽然我能够为主窗体连接MouseEventHandler,但当光标位于UserControl或任何其他控件上时,事件不再触发。如何确保我始终拥有鼠标位置。 最佳答案 您可以使用低级鼠标Hook。参见this示例并检查HookCallback中的WM_MOUSEMOVE消息。您还可以使用IMessageFilter类来捕获鼠标事件并触发事件来获取位置(注意:这只会获取窗口上方的位置,而不是窗口外的位置):usingSystem;usingSystem.Collections.Generic;usin

c# - 从鼠标事件中获取 shift/ctrl/alt 状态?

在我的WPF应用程序中,如何获取shift、ctrl和alt键的状态在我的鼠标事件处理程序中?我似乎记得在MFC中您可以从鼠标事件中获取该信息。 最佳答案 假设您仍在鼠标事件处理程序中,您可以检查Keyboard.Modifiers的值.我认为无论如何都无法从事件本身获取修饰符信息,因此您必须直接询问键盘。 关于c#-从鼠标事件中获取shift/ctrl/alt状态?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

c# - WPF是否有鼠标滚轮上下滚动事件

我检查了msdn。对于鼠标滚轮相关的事件,只有一个选项——UIElement.MouseWheel我想做的是监听鼠标滚轮向前(向上)和向后(向下)滚动事件。注意:不是单击中间的滚轮按钮。 最佳答案 没有,只有一个事件。当您查看MouseWheelEventArgs类时,有一个属性Delta。当滚轮远离用户旋转时,Delta为正,当滚轮朝向用户旋转时,Delta为负。 关于c#-WPF是否有鼠标滚轮上下滚动事件,我们在StackOverflow上找到一个类似的问题:

C# 如何在按住鼠标按钮时循环

你能给我指出正确的方向吗?我试图在按下表单按钮时触发一个循环。//pseudocodeWhile(button1ispressed)value1+=1然后当然会在释放按钮时停止循环 最佳答案 为避免使用线程,您可以添加Timer在您的表单/控件上添加组件,只需在鼠标按下时启用它并在鼠标抬起时禁用它。然后将通常放在循环中的代码放入Timer_Tick事件中。如果您想使用System.Timers.Timer,您可以改用Timer.Elapsed事件。示例(使用System.Timers.Timer):usingTimer=System

c# - 有什么方法可以检测用户控件外的鼠标点击吗?

我正在创建一个自定义下拉框,我想在下拉框外单击鼠标时进行注册,以便将其隐藏。是否可以检测控件外的点击?或者我应该在包含表单上做一些机制并在打开任何下拉框时检查鼠标点击吗? 最佳答案 所以我终于明白你只希望它在用户点击时关闭。在这种情况下,Leaveevent应该工作得很好......出于某种原因,我得到的印象是你希望它在他们将鼠标移出你的自定义下拉列表时关闭。Leave事件在您的控件失去焦点时引发,如果用户单击其他内容,它肯定会失去焦点,因为他们单击的内容获得了焦点。文档还说这个事件会根据需要在控制链上上下级联:TheEnteran

c# - 捕获表单外的鼠标/键盘事件(在后台运行的应用程序)

我有一个在后台运行的应用程序(最小化/任务栏)。我需要能够检测鼠标事件(点击、移动)以及键盘事件。考虑到我的窗口没有“聚焦”的限制,最好的方法是什么? 最佳答案 看看这个图书馆globalmousekeyhook.它是100%托管的c#代码,用于安装全局鼠标和键盘Hook。它将低级Hook包装到常见的Windows窗体键盘和鼠标事件中。 关于c#-捕获表单外的鼠标/键盘事件(在后台运行的应用程序),我们在StackOverflow上找到一个类似的问题: htt

c# - 当鼠标在点上时查看图表点的值

我有一个图表,我希望用户在指针位于点上时看到值。通过在页面findingthevalueofthepointsinachart中使用digEmAll的帮助,我可以写出下面的代码:Point?prevPosition=null;ToolTiptooltip=newToolTip();voidchart1_MouseMove(objectsender,MouseEventArgse){varpos=e.Location;if(prevPosition.HasValue&&pos==prevPosition.Value)return;tooltip.RemoveAll();prevPosit