UserControl点击事件很慢

时间:2014-09-29 17:23:12

标签: c# winforms user-controls

我有我的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时它没有响应。

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

关于我如何有这种行为的任何线索?

1 个答案:

答案 0 :(得分:3)

如果您点击非常快,则会收到双击事件。请尝试使用MouseDown事件。

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

protected override void OnMouseDown(MouseEventArgs e) {
  base.OnMouseDown(e);

  if (e.Button == MouseButtons.Left) {
    // your code here...
  }
}