UserControl单击事件速度较慢

本文关键字:速度 事件 单击 UserControl | 更新日期: 2023-09-27 18:24:56

我有我的UserControl,我附加了它的点击事件,这样我就可以设置它的边框样式。

public partial class TestControl : UserControl
{
    public TestControl()
    {
        InitializeComponent();
        this.Click += Item_Click;
        IsSelected = false;
    }
    public bool IsSelected { get; set; }
    void Item_Click(object sender, EventArgs e)
    {
        if (!IsSelected)
        {
            IsSelected = true;
            this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
        }
        else
        {
            IsSelected = false;
            this.BorderStyle = System.Windows.Forms.BorderStyle.None;
        }
    }
}

当我点击UserControl时,我会得到它的边框样式被指定或删除。。。这很好用。但是,如果我尝试更快地点击,当我点击UserControl时,它不会做出响应。

如果我点击一次,然后等待再点击,效果很好,但我想增加点击响应时间,就像它是一个按钮一样。

你知道我怎么会有这种行为吗?

UserControl单击事件速度较慢

如果单击速度非常快,则会得到双击事件。请尝试使用MouseDown事件。

但由于这是UserControl的基本事件,您可以重写该方法,而不是附加一个事件处理程序:

protected override void OnMouseDown(MouseEventArgs e) {
  base.OnMouseDown(e);
  if (e.Button == MouseButtons.Left) {
    // your code here...
  }
}