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

标签 winforms events button double-click

我希望事件仅在双击按钮时发生,而不是在单击按钮时发生事件。遗憾的是,双击事件没有出现在 IDE 的事件列表中。

有人知道解决这个问题的好方法吗?谢谢!

最佳答案

不,标准按钮不会对双击使用react。请参阅 Button.DoubleClick 的文档事件。它不会对双击使用react,因为在 Windows 中按钮总是对单击使用react,而从不对双击作出 react 。

你讨厌你的用户吗?因为您将创建一个与系统中任何其他按钮的行为不同的按钮,而某些用户永远不会弄清楚这一点。

也就是说,您必须创建一个从 Button 派生的单独控件来事件到此(因为 SetStyle 是 protected 方法)

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)  {
    }
}

关于WinForms如何调用按钮上的双击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13486245/

相关文章:

android - 如何在 android 应用程序中的 Activity 上添加声音按钮(打开关闭)?

c# - 如何使应用程序具有表单而不是表单?

c# - child 和 parent 如何沟通

javascript - 如何在按钮单击时停止页面刷新,但我的按钮单击事件应该触发

jquery - 为什么当用户从其他输入字段跳转时,TinyMCE 会获得焦点和模糊事件?

css - 如果都设置为 1em,为什么 div 的文本和按钮的文本大小不同?

c# - ToolStrip 圆角

c# - winform 的动态代码编译在 C# 中给出错误

javascript - Jquery创建新元素,但之后不会删除该元素

button - 如何在PYQT中创建按钮点击