Tag: mouse

用户是否使用键盘或鼠标离开WPF TextBox?

我有一个TextBox的PreviewLostKeyboardFocus事件的处理程序。 当我使用键盘(Tab键)或鼠标(通过单击表单上的另一个TextBox)离开TextBox时,它会触发。 处理程序采用KeyboardFocusChangedEventArgs ,它有一个名为KeyboardDevice的属性,在任一场景中都不为空(我希望在使用鼠标时在这里找到null )。 问题:如何判断用户是否使用键盘或鼠标离开WPF TextBox?

鼠标左键向上事件和openfiledialog

我在网格中有很少的图像,然后当我点击一个按钮时,出现“打开文件对话框”。(当然,在图像上) Microsoft.Win32.OpenFileDialog dlgOpenFiles = new Microsoft.Win32.OpenFileDialog(); dlgOpenFile.DoModal(); 图像附加了LeftButtonUp事件。 问题是,如果我通过双击选择文件,打开文件对话框将关闭(这很好),但除此之外,单击文件后面的图像正在接收一个根本不好的LeftButtonUp消息。 我使用的是wpf / c#/ vs2010

如何使Windows 8 Metro滚动查看器响应鼠标滚轮?

我目前正在使用Metro和C#为Windows 8编写应用程序。 在我的应用程序中,我使用scrollviewer和gridview的组合来显示我的数据。 但问题是,如何用鼠标滚轮滚动它? 在我的搜索中,我发现MouseWheelParameters位于System.Windows.Input中,但是当我尝试使用get_pageTranslation时,它会给出一个错误,指出我无法显式使用get方法。

GetMouseMovePointsEx:(mp_in)问题中的Bounds / MOUSEMOVEPOINT

我正在尝试计算光标加速度/速度。 我在C#中阅读了Find鼠标的速度,并决定采用Hans的建议使用GetMouseMovePointsEx ( pinvoke.net , MSDN )。 我制作了一个演示程序来测试它(参见下面的完整代码),但它有一个很大的局限性。 一旦光标离开窗口,它将不会返回点。 实际上,如果执行不限于MainWindow中的点,则函数返回-1(win32Exception 1171,“传递给GetMouseMovePoints的点不在缓冲区中”)。 我怀疑这可能是因为我使用Mouse.GetPosition()来提供mp_in值。 这可以通过使用GetCursorPos来解决吗? 移动窗口或调整窗口大小会导致myBounds.Contains(currentPosition)为true时为false。 这可能是一个与我如何设定界限有关的愚蠢错误,但对我来说并不是很明显为什么会这样。 它也可能连接到Mouse.GetPosition() 。 不管是什么原因,我的比较都不匹配。 请帮忙? 它看起来像什么 MainWindow.xaml MainWindow.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Threading; using System.Windows.Interop; using System.Runtime.InteropServices; namespace MouseVelocity { public partial class MainWindow : Window { DispatcherTimer GetMousePointsNow; MOUSEMOVEPOINT[] mp_out = new MOUSEMOVEPOINT[64]; MOUSEMOVEPOINT LastMMP; […]

防止鼠标离开我的表格

我已经将一些MouseMove和MouseClick事件附加到我的程序中,接下来就是其中之一: 获得“全局”鼠标移动,这样我甚至可以在窗体外读取鼠标位置。 首先防止我的鼠标离开表单。 我的项目是一个游戏,因此像大多数其他游戏一样阻止鼠标离开我的形状真是太棒了(如果你用alt + tab fe切换焦点,你可以把它移出来),并看看其他人的答案。要求全球摩苏运动的问题,他们似乎对我的需求非常混乱。 有一种简单的方法可以阻止我的鼠标走出我的表格边界吗? 或者实际上为了防止它首先超出边界,我希望鼠标留在客户区域内。 有关游戏的其他信息: 游戏是一个短暂的,长达5到30秒的生存游戏(在你活着的30秒后变得太难了)你必须用你的鼠标躲避子弹。 当你将鼠标移出表格然后播放器(连接到鼠标的System.Windows.Forms.Panel )停止移动并立即被子弹击中时,这真的很烦人。 这就是为什么防止鼠标离开该区域会很好。

在MouseOver上更改TabControl的SelectedTab

我有一个带TabControl的Windows窗体项目。 当你用指针hover它时,有谁知道如何更改SelectedTab ?

在不移动光标的情况下执行鼠标单击

除了用Cursor类移动光标,单击mouse_event然后将光标移动到旧位置,我找不到任何解决方案。 我现在正在使用SendInputfunction,但仍然没有机会获得一个好的解决方案。 任何建议?

同时检测鼠标左键和右键?

我正在重新制作Windows Minesweeper(来自XP),他们所包含的内容是,如果您同时使用鼠标左键单击带有尽可能多的标记的数字,则会显示该数字周围的所有其他隐藏的图块。 我很难说在同一时间同时按下左右鼠标按钮……我正在使用一对bool,每个按钮一个带有OnMouseDown和OnMouseUp事件但是如果是2个按钮在同一时间(或非常接近)单击,然后只有一个MouseDown事件关闭而另一个没有…如果您单击并按住其中一个按钮然后单击并按住另一个,代码可以正常工作。 有没有更好的方法来检测这种“双重”点击? 编辑: 好吧,小故事为什么我把它搞砸了(它一直都有效)。 我有一个运行Windows 7的macbook pro。对于那些不知道的人,macbook pro只有一个鼠标按钮栏,通常会留下点击,但是如果你放下2个手指就可以点击右键,这样你就可以’两者都做(并且没有中间点击)。 所以我正在构建我的应用程序并将其发送给我的朋友,他告诉我它不起作用,所以我发布了这个问题。 我终于决定在我的另一台笔记本电脑上试用它,带有2个鼠标按键的戴尔XPS ……一旦它在那里工作,我将它传递给其他朋友,他们确认它有效。 我不知道我的第一个朋友是如何搞砸了,但故事的道德是不要买任何苹果。 至少那是我得到的道德。

如何将鼠标事件传递给我在C#/ Vista中的应用程序?

我在C#中编写了一个非常专业的应用程序,它作为整个桌面上的一个大多数透明窗口浮动。 我希望能够创建鼠标事件并将其传递给我后面的应用程序,并使它们看起来“正常”运行,以响应这些事件。 如果窗口管理器可以响应,也是更可取的。 我不是Windows大师,也不确定如何最好地实现这一目标。 从此页面: http : //bytes.com/forum/thread270002.html 似乎mouse_event会很好,除了因为我的应用程序漂浮在其他所有内容上,我猜我生成的事件永远不会进入下面的其他应用程序。 似乎替代方案是SendMessage,但这需要大量手动操作窗口,并且生成的鼠标事件不是“真实的”。 有关最佳方法的任何想法吗?

除非我移动光标,否则SendInput不会执行鼠标单击按钮

除非我移动光标,否则SendInput不会执行鼠标单击按钮。 我很感激对这一个的帮助,因为我似乎无法绕过它。 我有一个程序,在前景窗口上执行鼠标单击,我在其中使用SendInput模拟鼠标左键单击。 问题是,如果我将光标移动到点击位置而不是SendInput将进行点击,但是如果我不移动光标而不是没有点击发生,即使通过我传递x和y指向MouseInputData。 我想执行鼠标左键而不需要实际移动光标。 贝娄是我的课程(相当简单和直接前进) namespace StackSolution.Classes { public static class SendInputClass { [DllImport(“user32.dll”, SetLastError = true)] static extern uint SendInput(uint nInputs, ref INPUT pInputs, int cbSize); [DllImport(“user32.dll”)] static extern bool SetCursorPos(int X, int Y); [DllImport(“user32.dll”)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool GetCursorPos(out Point lpPoint); [StructLayout(LayoutKind.Sequential)] struct INPUT { public SendInputEventType type; public MouseKeybdhardwareInputUnion mkhi; […]