双击控件时只触发双击事件,不触发单击事件怎么样做

liushiying18 2012-12-17 06:39:29
双击控件时只触发双击事件,不触发单击事件怎么样做
...全文
1127 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
xubzhlin 2014-08-02
  • 打赏
  • 举报
回复
在单机里面延时判断是否有双击,如果有则跳出,没有则继续执行不久OK了?
  • 打赏
  • 举报
回复
引用 26 楼 a7383768 的回复:
引用 7 楼 nice_fish 的回复:分情况讨论: 如果你是web页面,那使用Jquery 有一个dbclick()方法,双击事件。 如果你是winform,可以使用一个折中的办法,放一个隐藏的label.text = 1,点击一次,label的值加1 点击的方法体: { int i =Convert.ToInt32( label.tex……
你把代码看懂了再说吧。
小曾杰哥 2012-12-18
  • 打赏
  • 举报
回复
引用 7 楼 nice_fish 的回复:
分情况讨论: 如果你是web页面,那使用Jquery 有一个dbclick()方法,双击事件。 如果你是winform,可以使用一个折中的办法,放一个隐藏的label.text = 1,点击一次,label的值加1 点击的方法体: { int i =Convert.ToInt32( label.text); i++; label.text = i.to……
那如果我第一次是单击事件,第二次我同样也想触发的是单击事件。这方法明显就不可取了啊
l4kangaxx 2012-12-18
  • 打赏
  • 举报
回复
我觉得有多种思路,首先我先假设你在讨论winform了,那么最粗糙的一种思路是加时间控件。 单机和双机都是触发时间控件,而所谓的单击事件和双击事件都是在时间控件内来处理,具体是弹出菜单还是关闭窗体,由时间间隔决定。比如你单击后时间控件就开始走,走到1秒还是没有其他事情发生,那就触发单击事件,并且stop时间控件,如果在1秒内,又单击一次,那么就触发双击事件(由于双击是关闭,所以你就不用费心那个时间控件了),当然时间控件没那么容易,你得考虑很多UI线程的问题,我只是给你一个粗糙的思路。 另外还有一个思路:就是不要搞这么蛋疼的功能行么亲,让需求和设计人员好好讨论一下行不。
heycoder 2012-12-18
  • 打赏
  • 举报
回复
1.webform 引用jquery $("#btnID").dbclick(function(){ //do }) 2.winform int i=0; protected void btn_click(object sender, EventArgs e) { i++; if(i%2==0) { //do } } 最好判断下两次点击的时间间隔
绿领巾童鞋 2012-12-18
  • 打赏
  • 举报
回复
mousedoubleclick
卧_槽 2012-12-18
  • 打赏
  • 举报
回复
理解下什么叫单击,什么叫双击
  • 打赏
  • 举报
回复
单击之后你去延时然后判断是否执行相应的功能,这当然还是“触发了单击事件”的。不要自相矛盾。
  • 打赏
  • 举报
回复
我建议你还说不要随便单方面个人去歪曲“单击”概念。你可以重新组织你的描述,不要把单击跟双击对立起来。重新描述你的概念,把话说顺了、不内耗了程序自然就顺利地写出来了。
likedefly 2012-12-17
  • 打赏
  • 举报
回复
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace WindowsFormsApplication5 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } bool doubleclicked = true; private void listBox1_DoubleClick(object sender, EventArgs e) { doubleclicked = true; //双击对窗体尺寸改变,只是一个例子,你自己可以实现 this.Size = new Size(new Point(700, 700)); } private void listBox1_Click(object sender, EventArgs e) { doubleclicked = false; Thread th = new Thread(new ThreadStart(signClicked)); th.Start(); } private void signClicked() { Thread.Sleep(1000); if (!doubleclicked) { //todo:处理单击事件的逻辑 AddItem(); } } /// <summary> /// 代理委托 /// </summary> private delegate void AddItemDelegate(); /// <summary> /// 数据绑定 /// </summary> public void AddItem() { if (this.InvokeRequired) { AddItemDelegate m_SetProgressProxy = new AddItemDelegate(AddItem); this.Invoke(m_SetProgressProxy, new object[] { }); } else { this.listBox1.Items.Add(("signClicked" + this.listBox1.Items.Count.ToString())); } } } } 给你做了个demo,基本原理是使用线程处理,定义一个外部全局变量,确定是否双击。这里强调一下,关键在于把单击事件执行使用sleep滞后,判断在1秒内是否有再次点击,如果是,那么不执行单击事件,只执行双击事件。
cs张 2012-12-17
  • 打赏
  • 举报
回复
引用 17 楼 ducker3590 的回复:
引用 16 楼 chungehenyy 的回复: 引用 15 楼 ducker3590 的回复:引用 14 楼 chungehenyy 的回复: 引用 13 楼 ducker3590 的回复:引用 9 楼 chungehenyy 的回复: 引用 8 楼 ducker3590 的回复:引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事……
讨论今天晚饭吃了什么~
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 16 楼 chungehenyy 的回复:
引用 15 楼 ducker3590 的回复:引用 14 楼 chungehenyy 的回复: 引用 13 楼 ducker3590 的回复:引用 9 楼 chungehenyy 的回复: 引用 8 楼 ducker3590 的回复:引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事件不就好了 单击和双击又不……
咱都讨论啥了
cs张 2012-12-17
  • 打赏
  • 举报
回复
引用 15 楼 ducker3590 的回复:
引用 14 楼 chungehenyy 的回复: 引用 13 楼 ducker3590 的回复:引用 9 楼 chungehenyy 的回复: 引用 8 楼 ducker3590 的回复:引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事件不就好了 单击和双击又不会互相矛盾 I see you again~~ See You……
应该不会吧,我们是在讨论耶。
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 14 楼 chungehenyy 的回复:
引用 13 楼 ducker3590 的回复:引用 9 楼 chungehenyy 的回复: 引用 8 楼 ducker3590 的回复:引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事件不就好了 单击和双击又不会互相矛盾 I see you again~~ See You Again 妹子 ……
不是大叔 才22 你说咱这样会不会被版主删帖
cs张 2012-12-17
  • 打赏
  • 举报
回复
引用 13 楼 ducker3590 的回复:
引用 9 楼 chungehenyy 的回复: 引用 8 楼 ducker3590 的回复:引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事件不就好了 单击和双击又不会互相矛盾 I see you again~~ See You Again 妹子 低头看了下,咦,有小弟啊,怎么就变成了妹子了~ 好吧 小弟
好吧,大叔~
csdnFUCKINGSUCKS 2012-12-17
  • 打赏
  • 举报
回复
引用 9 楼 chungehenyy 的回复:
引用 8 楼 ducker3590 的回复:引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事件不就好了 单击和双击又不会互相矛盾 I see you again~~ See You Again 妹子 低头看了下,咦,有小弟啊,怎么就变成了妹子了~
好吧 小弟
hard_learner 2012-12-17
  • 打赏
  • 举报
回复
比如按钮就没法实现他的双击效果
hard_learner 2012-12-17
  • 打赏
  • 举报
回复
这种设计欠合理,可以考虑换下实现思路
crystal_lz 2012-12-17
  • 打赏
  • 举报
回复
- -!、、没有两次单击何来双击、、、
cs张 2012-12-17
  • 打赏
  • 举报
回复
引用 8 楼 ducker3590 的回复:
引用 6 楼 chungehenyy 的回复: 引用 5 楼 ducker3590 的回复:那就分别写两个事件不就好了 单击和双击又不会互相矛盾 I see you again~~ See You Again 妹子
低头看了下,咦,有小弟啊,怎么就变成了妹子了~
加载更多回复(8)

110,533

社区成员

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

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

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