与单击按钮时发生事件不同,我只希望在双击按钮时发生事件。令人遗憾的是,双击事件不会出现在IDE中的事件列表中。WinForms如何调用按钮上的双击事件?
任何人都知道这个问题的一个很好的解决方案?谢谢!
与单击按钮时发生事件不同,我只希望在双击按钮时发生事件。令人遗憾的是,双击事件不会出现在IDE中的事件列表中。WinForms如何调用按钮上的双击事件?
任何人都知道这个问题的一个很好的解决方案?谢谢!
没有标准按钮不会对双击产生反应。请参阅Button.DoubleClick事件的文档。它不会对双击产生反应,因为在Windows按钮中总是对点击作出反应,而不是双击。
你讨厌你的用户吗?因为您将创建一个与系统中任何其他按钮行为不同的按钮,并且某些用户永远不会知道这一点。
这就是说,你必须创建一个从Button
衍生事件给这个独立的控制(因为SetStyle是一个受保护的方法)
public class DoubleClickButton : Button
{
public DoubleClickButton()
{
SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
}
}
那么你必须在你的代码hanlder手动添加DoubleClick
事件因为它仍然不会出现在IDE中:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
doubleClickButton1.DoubleClick += new EventHandler(doubleClickButton1_DoubleClick);
}
void doubleClickButton1_DoubleClick(object sender, EventArgs e) {
}
}
双击只是在彼此的时间t内的两个常规点击事件。
以下是一个假设吨一些伪代码=0.5秒
button.on('click' , function(event) {
if (timer is off or more than 0.5 milliseconds)
restart timer
if (timer is between 0 and 0.5 milliseconds)
execute double click handler
})
不要这样做!您将忽略用户的双击速度设置。如果您按照从按钮导出的其他答案并创建可双击的按钮,Windows会告诉您它是否是双击。 –
它与双击单击无关 – Diego
我用于我的物体上添加MouseDoubleClick事件等:
this.pictureBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseDoubleClick);
请编辑您的答案以包含一些解释。仅有代码的答案对未来SO读者的教育很少。您的回答是在低质量的审核队列中。 – mickmackusa
http://msdn.microsoft。 com/en-US/library/system.windows.forms.button.doubleclick(v = vs.80).aspx – JWiley