草庐IT

鼠标双击

全部标签

c# - 双击 ListView 中的一行

是否有可能在ListView中获取双击行的值?我注册了一个事件:privatevoidlvLista_DoubleClick(objectsender,EventArgse){MessageBox.Show(lvLista.SelectedItems.ToString());}但是在消息上,当我双击ListView中的某行时,我得到:System.Windows.Forms.ListView+SelectedListViewItemCollection此外,我在ListView中有2列:lvLista.Columns.Add("ID");lvLista.Columns.Add("Til

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

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

c# - Winforms ListView - 双击时停止自动检查

如何使ListView在双击某项时不自动选中它?我可以尝试连接到MouseDoubleClick事件,并将Checked属性设置为false,但这感觉有点像hack。当实际检查项目时,我还会运行一个相当昂贵的计算,并且不希望此代码在双击时运行。使用上面的事件Hook,在处理双击之前引发ItemCheck和ItemChecked事件。有什么好的解决方案吗? 最佳答案 当您必须修改nativeWindows控件的工作方式时,通常不会想到优雅这个词,但这正是这里所需要的。请考虑您是否真的希望您的控件的行为与任何其他程序中的ListView

c# - 防止双击双击触发命令

假设您有一个可以触发命令的控件:如果用户双击命令,是否有办法防止命令被触发两次?编辑:在这种情况下重要的是我使用的是CommandingWPF中的模型。似乎只要按下按钮,就会执行命令。除了禁用或隐藏按钮外,我看不出有任何方法可以防止这种情况发生。 最佳答案 任何包含需要大量处理时间的代码的事件处理程序都可能导致延迟禁用相关按钮;无论在处理程序中调用禁用代码行的位置如何。试试下面的证明,你会发现禁用/启用与事件的注册没有关联。按钮点击事件仍然被注册并被处理。反证法1privateint_count=0;privatevoidbtnSt

c# - 如何停止双击窗口标题栏以最大化 FormBorderStyle.FixedToolWindow 的窗口?

令我恼火的是,我promise会提供一个用户无法调整大小的固定窗口,但他们当然可以双击标题栏来最大化这个“不可调整大小”的窗口。我怎样才能关闭它?我可以使用winforms代码来完成,还是必须转到Win32?谢谢! 最佳答案 您可以将表单的MaximizeBox属性设置为false 关于c#-如何停止双击窗口标题栏以最大化FormBorderStyle.FixedToolWindow的窗口?,我们在StackOverflow上找到一个类似的问题: https:

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

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

c# - 为什么双击滚动条时会触发 DataGrid MouseDoubleClick 事件?

为什么当我双击滚动条或标题时会触发DataGridMouseDoubleClick事件?有什么办法可以避免这种情况并仅当我在数据网格内双击时才触发事件。 最佳答案 滚动条和标题是网格的一部分,但不处理双击,因此事件“冒泡”到网格。不雅的解决方案是通过事件源或鼠标坐标来找出“点击了什么”。但你也可以做类似的事情(未经测试): 关于c#-为什么双击滚动条时会触发DataGridMouseDoubleClick事件?,我们在StackOverflow上找到一个类似的问题:

c# - .NET/C# 中的 TreeView 双击行为

我有一个普通的.NETWindowsFormsTreeView控件。节点设置如下:Group--child--child如果我双击折叠的组节点,它会展开(正如您所期望的那样)并触发NodeMouseDoubleClick事件,如果所选节点不是组,我的代码会执行某些操作节点。当组位于TreeView底部附近时会出现问题,因此当我双击组节点时,它会要求TreeView垂直展开以适合子节点。在这种情况下,如果我双击Group节点,当它展开并调整TreeView时,我的鼠标光标位于子节点上(它必须将所有内容向上推),这会导致NodeMouseDoubleClick认为子节点已被选中,这会导致非

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}}