2014-09-29 52 views
0

我有我的用户控件,我已附加它的单击事件,所以我可以设置它的边框样式。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

如果你点击速度非常快,你得到一个双击事件。尝试使用MouseDown事件。 – LarsTech 2014-09-29 17:26:02

+0

定义此控件*动态*? – 2014-09-29 17:26:32

+0

嗯你是对的:)让我试试 – VAAA 2014-09-29 17:28:22

回答

3

如果点击的速度非常快,则会出现Double-Click事件。尝试使用MouseDown事件。

但由于这是该用户控件的基本事件,你可以只覆盖的方法,而不是附加的事件处理程序:

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

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