探尋C# Button雙擊事件
C# Button雙擊事件大家一定相當(dāng)熟悉了,本文筆者又再一次為你闡述了C# Button雙擊事件的原理及實(shí)現(xiàn)方法。
C# Button是有DoubleClick事件的,只是它沒(méi)有出現(xiàn)在事件列表中,而且.net也是把這個(gè)事件給"屏蔽"掉了,無(wú)論你雙擊一個(gè)按鈕怎么快,也不會(huì)觸發(fā)這個(gè)事件。
為了能夠觸發(fā)C# Button的雙擊事件,我們可以重載MouseDown事件,記錄每次鼠標(biāo)按下的時(shí)間,如果兩次點(diǎn)擊的時(shí)間足夠近的話,就觸發(fā)一次雙擊方法。
這樣也大致能夠達(dá)到雙擊的效果,我所采用的方法其實(shí)和這個(gè)類似,是繼承Button類,重載Button類的Click事件,在Click事件中判斷兩次點(diǎn)擊的時(shí)間,如果近的話,就觸發(fā)雙擊事件。
下面就是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;
- }
- }
- }
這樣,就可以為創(chuàng)建的ButtonEx按鈕添加DoubleClick事件了:
- button.DoubleClick += new EventHandler(Button_DoubleClick); // 雙擊按鈕事件
以上就是筆者介紹的C# Button雙擊事件。
【編輯推薦】