Winforms:如何绑定接受MouseButtonEventArgs的事件处理程序?

Winforms:如何绑定接受MouseButtonEventArgs的事件处理程序?,winforms,mouseevent,Winforms,Mouseevent,我的表单包含一个UserControl,目前我有一个MouseDown事件处理程序,它与MouseEventArgs一起工作。但是,我希望得到一个带有MouseButtonEventArgs的事件处理程序,这样我就可以访问ClickScont属性来区分简单单击和双击。目前,我在StackOverflow上发现了一些代码,可以通过双击时间来了解单击了多少次,但这会导致重画延迟,因此它对用户不友好。重画本身很快 UserControl显示背景图像和从用户单击中绘制的小图像 那么,如何将事件绑定到接受

我的表单包含一个UserControl,目前我有一个MouseDown事件处理程序,它与MouseEventArgs一起工作。但是,我希望得到一个带有MouseButtonEventArgs的事件处理程序,这样我就可以访问ClickScont属性来区分简单单击和双击。目前,我在StackOverflow上发现了一些代码,可以通过双击时间来了解单击了多少次,但这会导致重画延迟,因此它对用户不友好。重画本身很快

UserControl显示背景图像和从用户单击中绘制的小图像

那么,如何将事件绑定到接受MouseButtonEventArgs事件的事件处理程序?在UserControl或父窗体上的MouseDown只像MouseEventArgs

我在这个项目中使用纯Winforms,而不是WPF

谢谢你帮我找到了

那么,如何将事件绑定到接受MouseButtonEventArgs事件的事件处理程序?在UserControl或父窗体上的MouseDown只像MouseEventArgs

你不能
MouseButtonEventArgs
用于WPF。WinForms使用
MouseEventArgs

如果您想捕获双击,您应该处理

目前,我在StackOverflow上发现了一些代码,这些代码通过双击时间来了解单击了多少次,但这会导致重画延迟

这是知道单击事件是双击的唯一方法。判断差异的唯一方法是等待系统指定的双击间隔。如果在该时间内再次单击,则应将其解释为双击。如果没有第二次单击,或者发生在该时间范围之外,则应将原始单击解释为一次单击


如果您不希望操作延迟,则需要对单次单击作出反应。

好的,因此我认为我将放弃单次单击和双击处理,而只放弃单次单击。很高兴了解Winforms比WPF更有限:-(这不是任何一个框架的限制,而是Windows操作系统的限制。两个框架都在做相同的事情,WPF只是对您隐藏代码。您可以自己编写代码,使用
MouseButtonEventArgs
引发事件。只需在
Click
事件处理程序中将
ClickCount
设置为1,然后设置2在
中双击事件处理程序。@barbara