草庐IT

c# - 在不访问 MouseEventArgs 的情况下获取鼠标状态?

我有一个包含很多很多控件的表单。我需要检测鼠标是向下还是向上。大多数时候,我没有MouseEventArgs。没有mouseEventArgs是否有一种快速简便的方法来判断鼠标是否按下?是否有替代方案,或者类似的方法是唯一的方法吗?:foreach(Controlcinthis.Controls){c.MouseUp+=newMouseEventHandler(globalMouseUp);c.MouseDown+=newMouseEventHandler(globalMouseDown);}boolisMouseUp=true;privatevoidglobalMouseDown(o

c# - 如何检测 PictureBox 上是否按下了鼠标按钮?

我需要在鼠标位于已单击并按住鼠标按钮的PictureBox上方时触发一个事件。问题:MouseDown和MouseEnter事件处理程序不能很好地协同工作。例如,一旦单击并按住鼠标按钮,C#将触发MouseDown事件处理程序,但是当光标移到PictureBox上时,MouseEnter事件不会触发,直到释放鼠标按钮。 最佳答案 当按下鼠标时,大多数控件将Control.Capture鼠标输入。这意味着所有MouseMove事件都被发送到捕获的原始控件,而不是鼠标恰好位于上方的控件。这一直持续到鼠标失去捕获,这通常发生在鼠标松开时。

c# - 在图表控件上显示鼠标轴坐标

是否有一种简单的方法来检索图表区域中任何点的X/Y坐标(当然是相对于该图表轴)?截至目前,我只是设法在鼠标位于系列(而不是外部)上时检索坐标privatevoidchart_GetToolTipText(objectsender,ToolTipEventArgse){if(e.HitTestResult.Series!=null){e.Text=e.HitTestResult.Series.Points[e.HitTestResult.PointIndex].YValues[0]+"\n"+DateTime.FromOADate(e.HitTestResult.Series.Point

c# - 空闲时间后隐藏鼠标光标

我想在空闲时间后隐藏我的鼠标光标,当我移动鼠标时它会显示出来。我尝试使用计时器,但效果不佳。有谁能够帮助我?请! 最佳答案 如果您使用的是WinForms并且只会部署在Windows机器上,那么它就很容易使用user32GetLastInputInfo处理鼠标和键盘空闲。publicstaticclassUser32Interop{publicstaticTimeSpanGetLastInput(){varplii=newLASTINPUTINFO();plii.cbSize=(uint)Marshal.SizeOf(plii);i

c# - 将鼠标移动到位置并左键单击

我正在使用C#、Framework4(32位)开发Windows窗体应用程序。我有一个包含鼠标坐标的列表,我可以捕获它们。到目前为止一切顺利。但在某些时候,我想转到那些坐标并用鼠标左键单击它。现在是这样的:for(inti=0;i还有点击类:classClicking{privateconstUInt32MOUSEEVENTF_LEFTDOWN=0x0002;privateconstUInt32MOUSEEVENTF_LEFTUP=0x0004;privatestaticexternvoidmouse_event(UInt32dwFlags,//motionandclickoption

c# - 当弹出窗口中的数据网格捕获鼠标时,wpf 弹出窗口不会自动关闭

我有一个带有StaysOpen=False的弹出窗口,所以我想通过单击弹出窗口之外的任意位置来关闭它。在弹出窗口中,我有一个DataGrid。如果我打开弹出窗口然后单击其他地方,弹出窗口将关闭。但如果在弹出窗口外单击之前我将单击DataGrid中的列标题,则不会发生这种情况。测试XAML:Open我认为这是因为列标题在单击时捕获鼠标并且弹出窗口不再接收鼠标事件。我试图在LostMouseCapture事件上添加一个处理程序,以便通过弹出窗口捕获鼠标,但它似乎并不那么容易工作。有什么想法吗? 最佳答案 也许它会有所帮助。附加行为:pu

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