2014-09-29 84 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... 
    } 
}