如何判断DoubleClick事件是左键还是右键双击引发的?

Roaming_Sheep 2005-07-16 11:42:58
控件的DoubleClick事件,对左键双击和右键双击都有响应

不使用MouseDown、MouseUp,能不能在DoubleClick事件处理的地方就简单的判断出是左键双击还是右键双击?

或者有没有方法只允许左键双击引发DoubleClick事件?
...全文
716 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
住楼上的老丁 2005-10-31
  • 打赏
  • 举报
回复
谢谢HuaGer(华戈)
Roaming_Sheep 2005-07-19
  • 打赏
  • 举报
回复
主要是充分利用一点,在DoubleClick之前肯定是 有click,MouseUp,MouseDown事件,肯定会触发的。
————————————————————
看来只能是这样了,谢谢你
Roaming_Sheep 2005-07-17
  • 打赏
  • 举报
回复
这也太明显了吧!
________________

到底怎么判断?
Roaming_Sheep 2005-07-17
  • 打赏
  • 举报
回复
if(e.Button == MouseButtons.Left)
{
DoSomething();
}

——————————————————————

DoubleClick事件的e参数是EventArgs 而不是 MouseEventArgs吧?
Oceanson 2005-07-17
  • 打赏
  • 举报
回复
if(e.Button == MouseButtons.Left)
{
DoSomething();
}
trueboy 2005-07-17
  • 打赏
  • 举报
回复
这也太明显了吧!
Roaming_Sheep 2005-07-17
  • 打赏
  • 举报
回复
ding
HuaGer 2005-07-17
  • 打赏
  • 举报
回复
主要是充分利用一点,在DoubleClick之前肯定是 有click,MouseUp,MouseDown事件,肯定会触发的。
我们只要在最后一个事件里面设定一个变量,在DoubleClick里面判断就可以咯
MouseButtons m_MB;
private void Form1_MouseUp(object sender, System.EventArgs e)
{
m_MB = e.Button;
}

private void Form1_DoubleClick(object sender, System.EventArgs e)
{
switch(m_MB)
{
case MouseButtons.Left:
//do something
break;
default:
//do something
break;
}
}
这样子应该可以咯,我试过。
HuaGer 2005-07-17
  • 打赏
  • 举报
回复
呵呵,大意了。没有实践就没有发言权,我刚才测试了一下不行。
只有mousedown 和mouseup中有button的类型,在里面设置一个变量来记录还可以,单独的double还是没办法。

不过也挺好控制的呀,并没有太多的代码,就设置一个变量就可以呀。
Roaming_Sheep 2005-07-17
  • 打赏
  • 举报
回复
回复人: HuaGer(华戈) ( ) 信誉:100 2005-07-17 13:02:00 得分: 0
呵呵,
1 添加 控件的DoubleClick事件处理函数。
2 处理代码大致如下。yzsb1118(我) 说的对,确实很明显。

private void Form1_DoubleClick(object sender, System.EventArgs e)
{
switch(e.Button)

______________________________________________________

可是 System.EventArgs 根本没有 button成员啊?
HuaGer 2005-07-17
  • 打赏
  • 举报
回复
呵呵,
1 添加 控件的DoubleClick事件处理函数。
2 处理代码大致如下。yzsb1118(我) 说的对,确实很明显。

private void Form1_DoubleClick(object sender, System.EventArgs e)
{
switch(e.Button)
{
case MouseButtons.Left:
//do something
break;
case MouseButtons.Middle:
//do something
break;
case MouseButtons.Right:
//do something
break;
default:
//do something
break;
}
}
在WEBPAGE(不是选项卡)上左键/右键或三键左键双击关闭选项卡。通过shiftKey + DC / TC重新打开选项卡。可选:一个图标... 非常重要的提示:安装后,双击“网页”(不要单击!)以关闭选项卡(或者为了更安全:将选项更改为使用鼠标右键单击页面或使用鼠标左键三次单击页面)-实际上,这比单击速度要快。标签。详细信息请参见下文。对于那些想要“双击选项卡以关闭”的人-Google现在进行了自己的扩展以执行此操作以及更多操作。它使用一种插件机制,该机制使用编译后的二进制代码,并且存在安全风险,除非您确定可以信任作者(当然可能来自Google)。如果不使用这种机制,Chrome扩展程序将无法接收标签事件 Google的扩展程序称为Chrome工具箱。至于那个问我为什么ChromePlus可以做到的人-答案很简单,ChromePlus不是Chrome。它也有额外的二进制代码,不是Google提供的。对于那些想要“双击鼠标右键”的用户-Chrome现在解决了阻止此功能的愚蠢问题,我将其放在DCCT v1.0.8中。请下载并享受!此扩展提供了以下功能:1.双击网页内的任意位置以双击鼠标左键双击鼠标右键以关闭选项卡(比单击鼠标中键更快,并在按住左手或手机时敲击ctrl-w)。重要提示:如果您双击鼠标左键选择一个单词,DCCT将不会关闭选项卡-不会干扰Google词典等。双击鼠标右键始终会关闭选项卡 2.单击该图标将关闭当前选项卡。单击此选项可在单击图标时更改为复制当前选项卡,或完全隐藏图标 3.没有意外关闭Chrome-提供了禁用关闭最后一个Chrome窗口的最后一个选项卡的选项(注意:单击最后一个窗口右上角的“ x”以关闭Chrome) 4.按用户请求的功能(可选):单击或单击ctrl +单击链接时会恢复浏览器的行为-单击链接将改为在新的背景选项卡中打开链接,而ctrl + click会在当前选项卡中打开链接。其他:1.如果双击不适合您,请使用“选项”页面切换到“三次单击”。注意:与双击不同,即使您双击一个单词,三次单击也会关闭选项卡 2.如果您不小心关闭了选项卡,请使用Shift键+双击(如果选择,请单击三次)以重新打开选项卡 3.如果Chrome禁用了所有与鼠标/键盘互动的扩展程序,则该图标显示红色复选标记。否则,将显示一个绿色的选中标记 4.鼠标悬停图标将为您提供一些提示/信息。已知问题:1.恢复click / ctrl-click时,使用javascript(本身或它们的父母)的链接存在问题-例如yahoo邮件。这是一个非常棘手的问题,我还没有找到解决它的方法。也许是黑名单? 2.如果“不关闭最后一个标签”功能对您来说似乎不稳定,请首先尝试-转到Chrome“选项”->“基本”,然后将“首页”从“新标签”更改为“ http:/ /google.com”。然后单击“确定”,然后尝试再次关闭最后一个选项卡。希望它应该 支持语言:English

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧