gpt4 book ai didi

c# - 使用 MouseClick Winforms 控件事件实现缺少的 MouseDoubleClick

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:27 26 4
gpt4 key购买 nike

我有一个实现了 MouseClick 事件监听器的控件,但缺少 MouseDoubleClick 监听器。

我已经使用我的自定义版本的 jQuery.DoubleTap 插件成功区分了 javascript 中的 click 和 dblclick 事件:bit.ly/roCV7h

所以我想在 C# 中使用类似的技巧:设置点击事件执行的延迟,如果在超时之前再次触发则取消它。

我在 stackoverflow 上找到了很多解决方案:但它们都不是线程安全的或让主(GUI)线程休眠。

最佳答案

我会使用计时器并存储点击次数。当计时器“滴答作响”时,检查点击次数并触发相关事件。

伪代码(抱歉不记得头顶的定时器功能)...

Timer timer = new Timer(); //maybe 500 ms elapsed period
int mouseCount = 0;

void OnMouseClick()
{
if(!timer.Enabled)
//start timer
mouseCount++;
}

void OnTimerTick()
{
timer.Stop();
if(mouseCount == 1)
//fire single mouse click event
else if(mouseCount > 1)
//fire double mouse click event
mouseCount = 0;
}

关于c# - 使用 MouseClick Winforms 控件事件实现缺少的 MouseDoubleClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7756061/

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