如何判断DoubleClick事件是左键还是右键双击引发的?
控件的DoubleClick事件,对左键双击和右键双击都有响应
不使用MouseDown、MouseUp,能不能在DoubleClick事件处理的地方就简单的判断出是左键双击还是右键双击?
或者有没有方法只允许左键双击引发DoubleClick事件?
问题点数:20、回复次数:11Top
1 楼Oceanson(洋之光)回复于 2005-07-17 00:16:56 得分 0
if(e.Button == MouseButtons.Left)
{
DoSomething();
}Top
2 楼Roaming_Sheep(Roaming Sheep)回复于 2005-07-17 00:25:31 得分 0
if(e.Button == MouseButtons.Left)
{
DoSomething();
}
——————————————————————
DoubleClick事件的e参数是EventArgs 而不是 MouseEventArgs吧?Top
3 楼Roaming_Sheep(Roaming Sheep)回复于 2005-07-17 09:38:56 得分 0
dingTop
4 楼yzsb1118(我)回复于 2005-07-17 10:21:04 得分 0
这也太明显了吧!Top
5 楼Roaming_Sheep(Roaming Sheep)回复于 2005-07-17 12:30:22 得分 0
这也太明显了吧!
________________
到底怎么判断?Top
6 楼HuaGer(华戈)回复于 2005-07-17 13:02:28 得分 0
呵呵,
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;
}
}Top
7 楼Roaming_Sheep(Roaming Sheep)回复于 2005-07-17 14:51:02 得分 0
回复人: 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成员啊?Top
8 楼HuaGer(华戈)回复于 2005-07-17 15:41:23 得分 0
呵呵,大意了。没有实践就没有发言权,我刚才测试了一下不行。
只有mousedown 和mouseup中有button的类型,在里面设置一个变量来记录还可以,单独的double还是没办法。
不过也挺好控制的呀,并没有太多的代码,就设置一个变量就可以呀。Top
9 楼HuaGer(华戈)回复于 2005-07-17 18:42:42 得分 20
主要是充分利用一点,在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;
}
}
这样子应该可以咯,我试过。Top
10 楼Roaming_Sheep(Roaming Sheep)回复于 2005-07-19 14:09:12 得分 0
主要是充分利用一点,在DoubleClick之前肯定是 有click,MouseUp,MouseDown事件,肯定会触发的。
————————————————————
看来只能是这样了,谢谢你Top
11 楼dchl(吊儿郎当)回复于 2005-10-31 11:23:36 得分 0
谢谢HuaGer(华戈)Top





