WinForms如何在按钮上调用双击事件?

The*_*lar 5 events button double-click winforms

单击一次按钮时,不希望发生事件,我希望仅在双击按钮时才会发生该事件.遗憾的是,双击事件不会出现在IDE中的事件列表中.

有谁知道这个问题的好方法?谢谢!

shf*_*301 18

没有标准按钮不会对双击做出反应.请参阅Button.DoubleClick事件的文档.它不会对双击做出反应,因为在Windows按钮中始终会对点击作出反应,而不会双击.

你讨厌你的用户吗?因为您将创建一个按钮,其行为与系统中的任何其他按钮不同,并且某些用户永远不会想到这一点.

那说你必须创建一个单独的控件派生Button到事件到这个(因为SetStyle是一个受保护的方法)

public class DoubleClickButton : Button
{
    public DoubleClickButton()
    {
        SetStyle(ControlStyles.StandardClick | ControlStyles.StandardDoubleClick, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

    void doubleClickButton1_DoubleClick(object sender, EventArgs e)  {
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你能告诉我如何链接这两个类DoubleClickButton和Form1,我的意思是我们如何设置Form1上的按钮的ControlStyles来自不同的类? (2认同)