C#Winforms与DoubleClick事件和MouseDoubleClick事件之间存在差异

Gal*_*Gal 23 c# winforms

这里的快速问题:正如标题所说,这两个事件之间的区别是什么?

据我所知,MouseDoubleClick从继承Control,而DoubleClick从继承Component,但两者之间有任何功能上的区别?

谢谢

Jam*_*mes 21

MSDN文档:

DoubleClick事件是控件的逻辑上更高级别的事件.它们可能由其他用户操作引发,例如快捷键组合.


Dav*_*ras 7

正如您在此处看到的:Control.MouseDoubleClick事件

当发生此类用户操作时,控件将引发以下一系列事件:

MouseDown事件.

点击活动.

MouseClick事件.

MouseUp事件.

MouseDown事件.

DoubleClick活动.

MouseDoubleClick事件.

MouseUp事件.

所以两者之间存在差异,因为MouseDoubleClick意味着要触发所有这些事件.


小智 6

我相信这两者之间的关键区别在于事件处理程序,其中"DoubleClick"事件将包含一个简单的EventArgs对象,而"MouseDoubleClick"将包含一个MouseEventArgs,其中包括鼠标的位置等.

所以基本上如果你需要知道控件上的点击发生在哪里,我会赞成"MouseDoubleClick"而不是"DoubleClick".

的DoubleClick

private void DoubleClick_Event(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)

MouseDoubleClick

private void MouseDoubleClick_Event(object sender, MouseEventArgs e)
Run Code Online (Sandbox Code Playgroud)