gpt4 book ai didi

c# - 在控件容器中捕获 Click/DoubleClick 事件?

转载 作者:行者123 更新时间:2023-11-30 16:32:18 25 4
gpt4 key购买 nike

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

无论如何,在他们的控件中的事件中发生了一些非常古怪的事情——特别是 MouseClick 和 MouseDoubleClick。如果文档中有图像,并且您双击该图像,则不会触发任何事件。但是如果您随后在文档正文上单击,则会突然触发控件的DoubleClick 事件,而不是单击事件。看起来事件在某处排队并在错误的时间醒来。

我无意浪费我的时间来弄清楚为什么他们的控制行为如此奇怪。但我需要针对此行为的解决方法。有没有什么方法可以使鼠标在此控件上的点击传输到包含控件,这样我至少可以尝试为我的事件使用更可靠的来源?

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

最佳答案

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

您可以使用 Application.AddMessageFilter(...) 来完成此操作。 调用的参数是一个实例对象,它实现了 IMessageFilter,它是一个接口(interface)仅使用一个名为 PreFilterMessage 的方法。在将应用程序中的每个 Windows 消息分派(dispatch)到适当的目标之前,都会调用此方法。因此,您可以在鼠标消息发送到您的问题控件之前监听它们。这样你就可以随心所欲了。

关于c# - 在控件容器中捕获 Click/DoubleClick 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com