探尋C# Button雙擊事件
C# Button雙擊事件大家一定相當熟悉了,本文筆者又再一次為你闡述了C# Button雙擊事件的原理及實現方法。
C# Button是有DoubleClick事件的,只是它沒有出現在事件列表中,而且.net也是把這個事件給"屏蔽"掉了,無論你雙擊一個按鈕怎么快,也不會觸發這個事件。
為了能夠觸發C# Button的雙擊事件,我們可以重載MouseDown事件,記錄每次鼠標按下的時間,如果兩次點擊的時間足夠近的話,就觸發一次雙擊方法。
這樣也大致能夠達到雙擊的效果,我所采用的方法其實和這個類似,是繼承Button類,重載Button類的Click事件,在Click事件中判斷兩次點擊的時間,如果近的話,就觸發雙擊事件。
下面就是C# Button雙擊事件的代碼:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Windows.Forms;
- public class ButtonEx : Button
- {
- public new event EventHandler DoubleClick;
- DateTime clickTime;
- bool isClicked = false;
- protected override void OnClick(EventArgs e)
- {
- base.OnClick(e);
- if (isClicked)
- {
- TimeSpan span = DateTime.Now - clickTime;
- if (span.Milliseconds < SystemInformation.DoubleClickTime)
- {
- DoubleClick(this, e);
- isClicked = false;
- }
- }
- else
- {
- isClicked = true;
- clickTime = DateTime.Now;
- }
- }
- }
這樣,就可以為創建的ButtonEx按鈕添加DoubleClick事件了:
- button.DoubleClick += new EventHandler(Button_DoubleClick); // 雙擊按鈕事件
以上就是筆者介紹的C# Button雙擊事件。
【編輯推薦】