我需要區分單擊和雙擊,但我需要在點擊事件期間執行此操作。我需要這個,因爲如果有一個單擊我想調用函數A,並且如果有雙擊,我想調用函數B.但函數A只能在單擊時調用。我怎樣才能在C#(或VB)中使用標準Winforms來實現這一點?如何處理WinForms控件點擊事件,當它不是雙擊時
2
A
回答
3
3
您需要點擊後使用計時器等待「一定的時間」事件來確定點擊是否是單擊。您可以使用SystemInformation.DoubleClickTime屬性來確定系統認爲連續點擊雙擊的最大點擊時間間隔。你可能想爲此添加一點填充。
在您的點擊處理程序中,增加點擊計數器並啓動計時器。在雙擊處理程序中,設置一個標誌來表示發生雙擊。在計時器處理程序中,檢查是否引發了雙擊事件。如果沒有,這是一個單一的點擊。
事情是這樣的:
private bool _doubleClicked = false;
private Timer _clickTrackingTimer =
new Timer(SystemInformation.DoubleClickTimer + 100);
private void ClickHandler(object sender, EventArgs e)
{
_clickTrackingTimer.Start();
}
private void DoubleClickHandler(object sender, EventArgs e)
{
_doubleClicked = true;
}
private void TimerTickHandler(object sender, EventArgs e)
{
_clickTrackingTimer.Stop();
if (!_doubleClicked)
{
// single click!
}
_doubleClicked = false;
}
0
另一個選項是創建從按鈕派生的自定義控制,然後調用SetStyles()方法,該方法是在構造一個受保護的方法),然後設置的ControlStyles國旗
class DoubleClickButton : Button
{
public DoubleClickButton() : base()
{
SetStyle(ControlStyles.StandardDoubleClick, true);
}
}
相關問題
- 1. 單擊事件充當雙擊事件
- 2. Android處理點擊事件
- 3. 當點擊Angular2-toaster彈出窗口時如何處理事件
- 4. 如何處理DataGridViewLinkColumn的點擊事件
- 5. jQuery如何處理點擊事件?
- 6. 如何處理LoginStatus控件點擊?
- 7. Winforms點擊事件不點火
- 8. 如何處理圖片點擊按鈕點擊事件
- 9. GaugeControl雙擊事件處理程序
- 10. 控件點擊事件點擊框
- 11. 雙擊事件觸發時如何取消單擊事件
- 12. 我想檢測一個項目雙擊WinForms列表框控件。 [如何處理點擊空白區域?]
- 13. 在Google Maps JS API v3中處理點擊事件,同時忽略雙擊
- 14. JQuery點擊事件需要雙擊
- 15. 雙擊事件
- 16. 雙擊事件
- 17. radgrid控件雙擊用單點擊
- 18. 如何處理單擊子控件時控件上的Click事件?
- 19. 在處理項目點擊事件時停止selectionChanged事件
- 20. event.stopPropagation()不是點擊事件
- 21. 雙擊計時器事件
- 22. 單擊事件處理程序觸發就緒,但不點擊
- 23. 使WPF用戶控件標記點擊事件處理
- 24. 處理網頁瀏覽器控件的點擊事件
- 25. 如何點擊窗體點擊事件,即使點擊用戶控件在c#
- 26. 當用戶點擊/點擊控件外部時發現的事件
- 27. 選擇更改事件是瑞星當我點擊Click事件處理程序
- 28. 處理標記點擊和雙擊googlemaps
- 29. 在pygtk中處理雙擊和單擊事件
- 30. 在SmartGWT RibbonBar上處理點擊事件
即使雙擊也會點擊。 – Daniel
有沒有簡單的方法。 以下是通過處理MouseDown事件區分點擊和dblclick的示例:http://msdn.microsoft.com/en-us/library/ms171543(v=vs.80).aspx – Tilak
我最終使用此鏈接稍作修改。謝謝。 – Daniel