我希望的是当按钮被双击时才触发事件,而不是单击一次。可惜在IDE的事件列表中没有双击事件。
有人知道这个问题的好解决办法吗?谢谢!
我希望的是当按钮被双击时才触发事件,而不是单击一次。可惜在IDE的事件列表中没有双击事件。
有人知道这个问题的好解决办法吗?谢谢!
标准按钮不会响应双击。请参考Button.DoubleClick事件的文档。在Windows中,按钮总是响应单击而不是双击。 不过,如果您创建的按钮与系统中的其他按钮行为不同,有些用户可能永远也不会弄清楚。
话虽如此,您必须创建一个派生自Button
的单独控件来处理这个问题(因为SetStyle是受保护的方法)。
public class DoubleClickButton : Button
{
public DoubleClickButton()
{
SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
}
}
那么你将不得不在你的代码中手动添加 DoubleClick
事件处理程序,因为它仍然不会出现在IDE中:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
doubleClickButton1.DoubleClick += new EventHandler(doubleClickButton1_DoubleClick);
}
void doubleClickButton1_DoubleClick(object sender, EventArgs e) {
}
}
使用这个。代码有效。
public class DoubleClickButton : Button
{
public DoubleClickButton()
{
SetStyle(ControlStyles.StandardClick |
ControlStyles.StandardDoubleClick, true);
}
}
DoubleClickButton button = new DoubleClickButton();
button.DoubleClick += delegate (object sender, EventArgs e)
{
//codes
};
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
})