的WinForms如何调用上的按钮双击事件?(WinForms how to call a Doub

2019-07-04 00:13发布

而不是让被点击一次按钮,当事件发生,我想事件发生,只有当按钮被双击。 可悲的是双击事件不会出现在IDE事件的列表。

任何人都知道一个很好的解决这个问题呢? 谢谢!

Answer 1:

没有标准的按键没有反应到双击。 请参阅文档Button.DoubleClick事件。 它不以双击的反应,因为在Windows按钮总是反应点击和永不双击。

你恨你的用户? 因为我们要创建一个按钮,作用比系统中的任何其他按键不同,有些用户将永远不会明白这一点。

这就是说,你必须创建源自一个独立的控制Button以事件给这个(因为的SetStyle是一个受保护的方法)

public class DoubleClickButton : Button
{
    public DoubleClickButton()
    {
        SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
    }
}

然后,你必须添加DoubleClick手动事件hanlder在你的代码,因为它仍然不会在IDE中显示:

public partial class Form1 : Form {
    public Form1()  {
        InitializeComponent();
        doubleClickButton1.DoubleClick += new EventHandler(doubleClickButton1_DoubleClick);
    }

    void doubleClickButton1_DoubleClick(object sender, EventArgs e)  {
    }
}


Answer 2:

我用我的对象像添加MouseDoubleClick事件:

this.pictureBox.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox_MouseDoubleClick);



Answer 3:

上双击可以是彼此的时间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
})


文章来源: WinForms how to call a Double-Click Event on a Button?