Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否捕获控件容器中的单击/双击事件?_C#_Winforms_Events - Fatal编程技术网

C# 是否捕获控件容器中的单击/双击事件?

C# 是否捕获控件容器中的单击/双击事件?,c#,winforms,events,C#,Winforms,Events,在我们的项目中,我们有一个由subsystem.com制作的第三方控件,称为,也称为“Tern”,它有点像一个文字处理器模拟器。我已经搜索了这么多使用过这个控件的人,但它似乎不是很受欢迎。他们没有任何支持联系方式;他们向任何需要帮助的人收费 无论如何,在他们控制的事件中发生了一些非常奇怪的事情——特别是鼠标点击和鼠标双击。如果文档中有图像,并且双击该图像,则不会触发任何事件。但是,如果随后在文档主体上单击单键,则会突然触发控件的双击事件,而不是单击事件。看起来事件正在某个地方排队,并在错误的时间

在我们的项目中,我们有一个由subsystem.com制作的第三方控件,称为,也称为“Tern”,它有点像一个文字处理器模拟器。我已经搜索了这么多使用过这个控件的人,但它似乎不是很受欢迎。他们没有任何支持联系方式;他们向任何需要帮助的人收费

无论如何,在他们控制的事件中发生了一些非常奇怪的事情——特别是鼠标点击和鼠标双击。如果文档中有图像,并且双击该图像,则不会触发任何事件。但是,如果随后在文档主体上单击单键,则会突然触发控件的双击事件,而不是单击事件。看起来事件正在某个地方排队,并在错误的时间醒来

我无意浪费时间去弄明白为什么他们的控制行为如此怪异。但是我需要一个解决这个问题的方法。是否有任何方法可以让鼠标点击这个控件传递到包含控件,这样我至少可以尝试使用更可靠的事件源


对于如何可靠地捕捉点击/双击事件的任何其他建议,我们将不胜感激

一种方法是添加应用程序级消息过滤器


您可以使用
应用程序.AddMessageFilter(…)。
调用的参数是一个实例对象,它实现了
IMessageFilter
,该接口只有一个名为
PreFilterMessage
的方法。在将应用程序中的每条windows消息发送到相应的目标之前,会对其调用此方法。因此,您可以在鼠标消息发送到您的问题控件之前对其进行窥探。这样你就可以随心所欲了。

Hmya,庞大的广告预算很少会给体面的支持留下太多空间。从控件中派生自己的类并重写WndProc()是唯一合适的选择。